是哪个图案设计?

问题描述 投票:0回答:1

我见过像下面这样的实现

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);
    }
}

我感觉是复合的,但又不完全是复合的,是混合复合工厂吗?

什么设计模式?

design-patterns factory-pattern composite
1个回答
0
投票

是依赖注入。

在 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
方法。

© www.soinside.com 2019 - 2024. All rights reserved.