php设计原则

作者: JONE 分类: PHPer 发布时间: 2017-08-21 14:11

1.1   开闭原则

开闭原则:一个软件应对扩展开放、对修改关闭,代码应该如晚霞中的莲花一样关闭(免于改变),如晨曦中的莲花一样开放(能够扩展);英文原文:Software entities should open for extension, but closed for modification.

//开闭原则,对扩展开放,对修改关闭,策略者模式是对开闭原则的一种实现

通过策略者模式深入理解开闭原则:

一个非策略者模式编程:

我们以上的代码是为了实现,母亲读书,如果要扩展母亲读报纸呢?我们发现母亲居然没有这个能力,如果,要母亲具有这个能力,必须修改mother类,增加if判断。如下图所示:

这样我们的mother类为核心处理类,就在增加功能时,需要不断的更改。而对原代码的更改很容易出现错误。

对扩展开放,对修改关闭

策略者模式:

这个时候,我们需要扩展母亲的能力,只需要扩展相应的类就足够了。

 

1.2   单一职责

单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。 如果一个类的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会抑止这个类完成其他职责的能力。

一个类完成一个类的事情

1.3   迪米特原则或最少知识原则

体现的最为彻底的就是:类中的属性只本类知道,即,一个类的属性应该都是私有化的,如果,类外部需要访问类内部属性,必须通过,方法访问

 

1.4   里氏代换原则

里氏代换原则,很严格的原则,规则是“子类必须能够替换基类,否则不应当设计为其子类。”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类。

 

 

1.5   依赖倒换原则

“设计要依赖于抽象而不是具体化”。换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。这样做有什么好处呢?人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的。另外这个原则会很好的支持OCP,面向抽象的设计使我们能够不必太多依赖于实现,这样扩展就成为了可能,这个原则也是另一篇文章《Design by Contract》的基石。

 

1.6   接口隔离原则

接口隔离原则,“将大的接口打散成多个小接口”

发表评论

电子邮件地址不会被公开。 必填项已用*标注