美文网首页
设计模式之依赖

设计模式之依赖

作者: 懒无趣 | 来源:发表于2020-12-23 21:14 被阅读0次

    依赖

    依赖简单来说就是A类实现的过程中需要用到B类,这称为A依赖B

    class A:
        def do(bClass B):
            doWith(bClass)
        end
    

    依赖倒置

    由于A类强依赖于B类,如果B类有多种其他的实现方法,那么修改起来违反开闭原则。

    依赖倒置原则:从原来的A强依赖于B,修改为A需求IB接口,B类去实现该接口。即本来上层调用者(A)得受制于B类的实现,修改为B类去满足A类的需求。

    那么代码即可修改为A类依赖于IB接口,然后再将B类传入。

    控制反转

    控制反转是一种思想

    def foo():
        b = new B()
        doSomethingWith(b) 
    end
    

    如上代码,函数执行的时候内部主动调用new B()生成一个B对象(因此A依赖B),然后再进行其他逻辑。这种做法有两种坏处:

    1. 耦合性太强,如果B类修改,那么A类可能也需要修改
    2. B初始化的过程可能会持续很久,如果在测试的时候不断初始化会很慢

    控制反转的精髓在于主动于被动

    def foo(b):
       doSomethingWith(b)
    end
    

    此时函数是被动传入一个b对象来执行函数逻辑,b对象可以是一个约定好的接口,因此:

    1. 可以解耦合
    2. 测试阶段可以先初始化好一个对象b然后不断执行测试,大大减少初始化的次数。

    依赖注入

    是控制反转思想的一种实现

    相关文章

      网友评论

          本文标题:设计模式之依赖

          本文链接:https://www.haomeiwen.com/subject/yhiunktx.html