简述面向对象的设计基本原则

    本人是一只菜鸡,最近在学习一些设计模式,这次先不说设计模式方面的东西,先写一写面向对象设计的一些基本原则吧(大神可以略过)。

1.单一职责

    单一原则顾名思义就是一个类只负责一种事情。拿android的图片加载来举例,缓存就需要和加载方面分开类,因为他们负责的功能都不一样。缓存就是缓存、加载就要加载。

    职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。

2.开闭原则

    开闭原则的意思就是对扩展功能要开放,对修改代码要关闭。说白了就是:程序可以扩展,但是不能修改。这样做的好处就是保证了原有代码的安全性。

  “需求总是变化”没有不变的软件,所以就需要用封闭开放原则来封闭变化满足需求,同时还能保持软件内部的封装体系稳定,不被需求的变化影响。

3.依赖倒置原则

   高层的模块不应该基于底层的模块,依赖倒置也可以很好的让高层的模块与底层的模块分离开,可以更好的解耦。

    依赖于抽象是一个通用的原则,而某些时候依赖于细节则是在所难免的,必须权衡在抽象和具体之间的取舍,方法不是一层不变的。依赖于抽象,就是对接口编程,不要对实现编程。

4.接口隔离原则

     设计接口的时候不要设计成一个总的接口,要把他们具体的分离开来,实现多继承。接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。

5.里氏替换原则

      里氏替换原则的核心是子类必须可以替换父类,这样做可以保证了继承的复用性。

      里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象

       以上就是面向对象设计的基本原则,这是第一次写文章,希望不好的地方大家批评指正,让我们一起成长!

推荐阅读更多精彩内容