【设计模式之禅】6大原则

  • 单一职责原则(SRP:single Responsibility Principle)

    应该有且只有一个原因引起类的变更(实际项目中很难做到)

    优点:

 

 

  • 里氏替换原则(LSP: liskov Substitution Principle)

        1.子类必须实现父类的方法

                如果子类不能完整地实现父类的方法, 或者父类的某些方法在子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚集、组合等关系代替继承。

        2.子类可以拥有自己的个性(自己的方法和属性)

                父类出现的地方,子类就可以出现。
                有子类出现的地方,父类未必可以出现。

        3.  覆盖或实现父类的方法时,输入的参数可以被放大

                输入参数的类型要宽于父类的类型覆盖范围:例如父类用HashMap, 子类用Map

                如果父类的类型更宽泛,会导致子类在没有覆写父类方法的前提下,子类方法被执行。

               

 

                

 

                

        4.覆写或实现父类的方法时输出结果可以被缩小

        里氏替换原则优点:

 

  • 依赖倒置原则(DIP, Dependence Inversion  Principle)

                1.高层模块不应该依赖底层模块,两者都应该依赖其抽象(接口或是抽象类)

                2.抽象不应该依赖细节( 实现类,实现接口或继承抽象类而产生的类)

                3.细节应该依赖抽象

                4.模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的 

                5.接口或抽象类不依赖于实现类

                6.实现类依赖接口或抽象类

               

    依赖倒置原则优点:

    采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。

    依赖的三种写法
                1.构造函数传递依赖对象

                2.Setter方法传递依赖对象

                3.接口声明依赖对象

     项目中应用方式

                

               

               

               

               

               依赖倒置原则的核心:面向接口编程

               

  • 接口隔离原则

  • 迪米特法则

  • 开闭原则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值