架构一期二班 - 吴水金 - 第二课总结
面向对象的五大原则:
1.开放封闭原则
在进行功能扩展时,程序允许增加新的代码,但不允许修改现有的代码结构。在具体的实践中,我们需要对具体业务进行抽象,以便抽象出通用的调用关系,这一块是对外封闭的。我们开放具体实现类这一块,实现类可以由用户自定义,前提是实现类必须实现抽象接口。
2.依赖倒置原则
当一个模块调用另一个模块时,并不直接引用被调用模块的类。而是引用一个抽象接口,该接口由调用模块定义,由被调用模块对其实现。调用不需要关心被调用方的具体实现,而被调用方却需要关心调用方的接口定义以便对其进行实现。因此,原本的依赖关系就倒过来了,依赖倒置也称依赖反转。
3.里氏替换原则
如果对每一个类型T1的对象o1,都存在一个T2的对象o2,使得在所有针对T2编写的程序P中,用o1替换o2后,程序P的行为不变,则T1是T2的子类。简单来说,就是用子类型替换基类型,子类型的功能不会受到影响。用来衡量继承是否合理,需根据具体场景来判断。策略模式所体现的里氏替换原则。子类的访问控制不能比父类更严格。子类函数不能退化,子类不能抛出父类没有的异常。
4.单一职责原则
一个类,只能有一个引起它变化的原因。一个单一职责的类是内聚性很高的类。具体实践中,相同的功能聚集在一起,一个类只做一件事。复杂的功能通过各种单一职责的类之间组合调用来实现。
5.接口隔离原则
如果有一个功能较多的类提供给不同的模块进行调用,而不同的模块都只需要调用该类的部分接口。那么,接口隔离原则指的是,我们会向不同的调用模块提供不同的接口,这些接口都由被调用类实现,调用模块不会看到与自己调用无关的功能。
版权声明: 本文为 InfoQ 作者【吴水金】的原创文章。
原文链接:【http://xie.infoq.cn/article/230ea78772baf23498691cb83】。文章转载请联系作者。
评论