面向对象的设计原则

来源:互联网 发布:粒子群优化算法实例 编辑:程序博客网 时间:2024/06/06 09:35

         刚开始看《设计模式》,没有头绪,不知如何“下手”。先看了最后的附录A——面向对象基础,写的挺详细的。但是看创建型模式的时候,越看进度越慢,尤其是抽象工厂模式。模式中都体现了这些设计原则,汇总一下:

一. 单一职责原则(SRP)

    1. 顾名思义,通俗来讲单一职责原则可以说是功能要单一,不要复杂。准确解释:就一个类而言,应该仅有一个引起它变化的原因。如果有多个动机来修改类,那它就不符合单一职责原则,就得再考虑类的职责分离。

    2. 举例:工业社会的流水线生产模式,分工明确,职责单一,工作效率高

二. 开放封闭原则(OCP)Open-Closed principle

    既开放又封闭,对扩展是开放的,对更改是封闭的!现实中需求是一定会变化的,所以设计软件要容易维护又不容易出问题的最好办好就是多扩展、少修改
    这个原则对我们在设计类的时候很有帮助,坚持这个原则就必须尽量考虑接口封装,抽象机制和多态技术!

三. 依赖倒转原则(DIP)Dependecy-Inversion Principle

        传统的结构化编程中,最上层的模块通常都要依赖下面的子模块来实现,也称为高层依赖低层!所以DIP原则就是要逆转这种依赖关系,让高层模块不要依赖低层模块,所以称之为依赖倒置原则!

    它其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。

四. 里氏代换原则(LSP)Liskov-Substituion Principle

    子类可以替换父类并且出现在父类能够出现的任何地方。
    在这个原则中父类应尽可能使用接口或者抽象类来实现!

五. 迪米特法则(LOD)

    也叫最少知识原则,即一个对象应该对其他对象保持最少的了解。(弱耦合)

六. 接口隔离原则(ISP)Interface-Segregation Principle

  使用多个专门的小接口,不要使用一个大的总接口。

    实际编程中,为了减少接口的定义,将许多类似的方法都放在一个接口中,最后发现,维护和实现接口的时候花了太多精力,而接口所定义的操作相当于对客户端的一种承诺,这种承诺当然是越少越好,越精练越好,过多的承诺带来的就是你的大量精力和时间去维护!

    这些原则只是浅层次的理解意思,至于它的应用还得从设计模式中领悟出来。模式的设计得遵守这些原则,应该也不可能做到面面俱到吧,总之是寻求一个最佳的平衡点,慢慢的体会!

0 0
原创粉丝点击