最近在看设计模式的书,突然看见了面向对象的六大原则,有点懵。这里一边写点自己理解的,一边梳理下最近学习的知识
一、单一职责原则:
单一职责原则,用通用的解释是:
就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化。
我的理解是:把功能细分,一个类只做一个逻辑,这样以后修改代码时只要修改相应的逻辑类就行,也不会出现这里修改完bug,那里就开始出现新bug的情况。
二、开闭原则,用通用的解释是:
设计要对扩展有好的支持,而对修改要严格限制。
我的理解是:写一个通用的接口,其他的类去继承这个类,这里就牵扯到了“继承”,“多态”的使用,由于里面的水很深,我这里就不做太多探讨,之后的博客内会有相关的资源。这个原则用在修改新代码上是很有用的,不会出现莫名其妙的把好的代码修改成bug。
三、里氏替换原则,用通用的解释是:
子类必须能够替换基类,否则不应当设计为其子类。
我的理解是:跟开闭原则差不多,他们是相互存在的,有开闭原则存在就也会有里氏替换原则出现,父类可以声明为子类,但子类不能为父类