面向对象设计原则是从设计模式中总结出来的指导性原则,也就是说面向对象设计原则遵循了设计模式。我们平时在开发软件的时刻也要尽量遵循面向对象设计原则进行开发。面向对象设计原则为支持可维护性复用而诞生.
1、单一职责
定义: 一个类只负责一个功能领域中的相应职责,或者可以定义为,就一个类而言。应该只有一个引起变化的原因。
以一个类来说,在定义一个类的时候应该明确这个类的动作,所有的动作只针对一个事务(职责),比如有一个汽车类,它有几个方法分别是开门、关门、前进、后退、洗车、维护等功能。
按照单一职责的定义,一个类只负责一个功能领域中的相应职责。 汽车能干什么?汽车可以开门,关门,前进,后退;这是汽车应该干的事。对于洗车,修车,保养这些动作应该是修车厂的事情。
看图:
为什么要这样做?单一职责带来了哪些好处?
减低了类的复杂程度,提高可读性,一个类只负责一项职责(对一个事物的操作),使类的方法高度聚合。
低耦合,提高可维护性,对其修改引起的风险降低。
2、开闭原则
开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性
定义: 一个软件实体应当对扩展开放,对修改关闭.即软件实体应该尽量在不修改原有代码的情况下进行扩展.
开闭原则的关键在于抽象,使用接口、抽象类对一些功能抽象化,再通过具体的类来进行扩展。
比如,系统主题,今天用第一个主题,明天用第二个主题;在这些主题切换时不应该对现有系统进行更改。如果把这些主题抽象出一个基类,那是不是我要用哪个主题时只要把主题直接引用赋值给基类就行了。要添加主题直接继承基类就可以了,不需要修改原有的代码。
原文:https://www.cnblogs.com/liaobudao/p/11234409.html