我见过像下面这样的实现
IService { do(request); }
AService : IService
{
do(request) {}
}
BService : IService
{
do(request) {}
}
FinalService : IService
{
private IService _aService;
private IService _bService;
public FinalSerive(IService aService, IService bService) {
_aService = aService;
_bService = bService;
}
do(request)
{
if request.Type = "a": _aService.do(request);
else _bService.do(request);
}
}
我感觉是复合的,但又不完全是复合的,是混合复合工厂吗?
什么设计模式?
是依赖注入。
在 Python 中是:
class IService:
def do(request):
pass
class AService(IService):
def do(request):
print("Handling request with AService")
class BService(IService):
def do(request):
print("Handling request with BService")
class FinalService:
def __init__(self, aService, bService):
self._aService = aService
self._bService = bService
def handle_request(self, request):
if request.type == "a":
self._aService.do(request)
else:
self._bService.do(request)
但是例如在 Python 中,你不需要
do
方法。