首页 » 网站建设 » php正则对象技巧_不懂对象设计原则都不好意思自称php大年夜师

php正则对象技巧_不懂对象设计原则都不好意思自称php大年夜师

访客 2024-10-23 0

扫一扫用手机浏览

文章目录 [+]

一个类被改变的缘故原由不能超过一个,

也便是说,一个类只有一个职责,

php正则对象技巧_不懂对象设计原则都不好意思自称php大年夜师

如果职责过多,代码就会臃肿,可读性更差,也更难以掩护。

php正则对象技巧_不懂对象设计原则都不好意思自称php大年夜师
(图片来自网络侵删)

为什么要遵守单一职责原则

1、提高类的可掩护性和可读写性

一个类的职责少了,繁芜度降落了,代码就少了,可读性也就好了,可掩护性自然就高了

2、提高系统的可掩护性

系统是由类组成的,每个类的可掩护性高,相对来讲全体系统的可掩护性就高。
当然,条件是系统的架构没有问题。

3、降落变更的风险

一个类的职责越多,变更的可能性就更大,变更带来的风险也就越大

如何遵守单一职责原则

合理的职责分解相同的职责放到一起,不同的职责分解到不同的接口和实现中去

单一职责原则最佳实践

在实际事情中,有一个常常会用到的设计模式,DAO模式,又叫数据访问工具,里面定义了数据库中表的增、删、改、查操作.按照单一职责原则,为什么不把增、删、改、查分别定义成四种接口?

这是由于数据库的表操作,基本上便是这四种类型,不可能变革,以是没有必要分开定义。

反而常常变革的是数据库的表构造,表构造一变,这四种操作都要随着变。

以是常日我们会针对一张表实现一个DAO,一张表就代表一种类型的职责。

接口隔离原则

接口隔离原则(Interface Segregation Principle,ISP)

1.客户端不应该依赖它不须要的接口

2.类间的依赖关系该当建立在最小的接口上

普通来讲:利用多个专门的接口比利用单一的总接口要好。

接口如果能够保持粒度够小,就能担保它足够稳定。

换而言之,从一个客户类的角度来讲:一个类对其余一个类的依赖性应该是建立在最小接口上的。
过于臃肿的接口是对接口的污染。

不应该强制客户依赖于它们不用的方法。

接口隔离原则与单一职责原则比拟

接口隔离原则和单一职责原则非常类似

单一职责原则哀求接口的职责是单一的,

而接口隔离原则哀求接口只管即便细化。

它们有异曲同工之妙,都是要让我们的接口功能只管即便单一,只管即便小。

但是,单一职责原则的着重点是在“职责”,而接口隔离原则只纯挚地哀求接口最小化。

那么,如果已经知足单一职责原则的接口,在当前的需求下还可以连续细化,那么还须要细化吗?答案是不要再细化了。

在实践中,接口设计的粒度越小,系统就越灵巧,这是事实。

但是灵巧的同时也带来了系统的繁芜化,导致开拓难度增加。

以是接口并不是越小越好,必须要有一个度。

当单一职责原则和接口隔离原则存在抵牾时,以知足单一职责原则为底线。

开放-封闭原则

开放-封闭原则(Open-Close Principle,OCP)

对付扩展是开放的

这意味着模块的行为是可以扩展的。

当运用程序的需求改变时,我们可以对其模块进行扩展,使其具有知足那些需求变更的新行为。

换句话说,我们可以改变模块的功能。

对付修恰是封闭的

对模块行为进行扩展时,不应该影响或大规模地影响已有的程序模块。

换句话说,哀求开拓职员在不修正系统现有的代码(源码或二进制代码)的条件下,实现对系统的扩展。

比如生活中的电脑,知足开放封闭原则。
向电脑USB接口插入鼠标,就可以利用鼠标功能,这是开放的(扩展了鼠标功能)。
我们不须要对电脑内部部件重新编排,这是封闭的(扩展了鼠标功能,但我们不须要修正电脑配置)。

但这也是相对的,对付一台电脑不可能完备开放,有些设备和功能必须保持稳定才能减少掩护上的困难。
要实现一项新的功能,你就必须升级硬件,或者换一台更高性能的电脑。

里氏更换原则

里氏更换原则(Liskov Substitution Principle,LSP)

1.子类必须完备实现父类的方法

在类中调用其它类时务必要利用父类或接口,如果不能利用父类或接口,则解释类的设计以及违背了LSP原则

2.子类可以拥有自己的“个性”

子类可以拥有自己的方法和属性,也可以重写(Override)或重载(Overload)父类的方法。
从而拥有自己的“个性”。

但这里提起是为了再次解释一个问题——里氏更换原则可以正着用,但不能反过来利用,即子类涌现的地方,父类未必可以胜任。

依赖导致原则

依赖导致原则(Dependence Inversion Principle,DIP)

高层模块不应该依赖低层模块,两者都该当依赖其抽象;

抽象不应该依赖细节;

细节该当依赖抽象。

以上3点,普通的讲:

模块间的依赖是通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;

接口或抽象类不依赖于实现类;

实现类依赖接口或抽象类。

简言之便是“面向接口编程”

php7进阶到架构师干系阅读

https://www.kancloud.cn/gofor/gofor

末了,欢迎大家留言补充,谈论~~~
标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读0 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读0 评论0