IT培训-高端面授IT培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-86588008
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资

      PHPer必学的进阶教程:PHP面向对象设计的五个基准原则

      • 发布时间:
        2019-08-12
      • 版权所有:
        云和教育
      • 分享:

      学习PHP的朋友们都知道,PHP在中小型企业的应用是非常广泛包括建站、小程序、CRM与OA等。那么作为基础中的基础,PHP面向对象你又掌握了多少呢?

      配图1 PHP面向对象设计的五个基准原则.jpg

      今天这篇文章,就来给大家讲一讲关于面向对象的一些事,希望能对大家有所帮助。

      什么是面向对象?

      配图2 PHP面向对象设计的五个基准原则.jpg

      面向对象就是把生活中要解决的问题都用对象的方式进行存储–把所有的数据用属性、方法表现出来。

      面向对象编程就是编程的时候数据结构(数据组织方式 )都通过对象的结构进行存储,使用属性和方法组织起来。对象之间的互动是通过方法的调用完成互动。

      对象的描述方式更加贴合真实世界,有利于对大型业务的理解,具有多人合作方便、减少代码的冗余、灵活性高、代码的可重用性发挥到极致、可扩展性等优势。

      五大设计原则——SOLID

      学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。

      接下来,本文就为大家介绍面向对象设计的5个基本原则:

      S – 单一功能原则(SRP)

      O – 开闭原则(OCP)

      L – 里氏替换原则(LSP)

      I – 接口隔离原则(DIP)

      D – 依赖倒置原则(OCP)

      单一职责原则

      配图3 PHP面向对象设计的五个基准原则.jpg

      单一职责有两个含义:一个是避免相同的职责分散到不同的类中, 别一个是避免一个类承担太多职责。

      遵守SPR原则的优势:

      ●减少类之间的耦合:当需求变化时,只修改一个类,从而隔离了变化带来类对其他职责的影响

      ●提高类的复用性:按需引用,一个类负责一个职责,需求的变动只需要修改对应的类或增加某一职责

      ●降低类的复杂度:职责单一,功能分散开降低一个类多个职责类的复杂度

      不遵守SRP会影响对类的复用性。当只需要用该类的某一个职责时,由于它和其他的职责耦合在一起,也就很难分离出。

      代码示例:

      配图4 PHP面向对象设计的五个基准原则.jpg

      开闭原则

      对象和实体应该对扩展开放,但是对修改关闭。

      简单的说就是,一个类应该不用修改其自身就能很容易扩展其功能。

      比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

      代码示例:

      配图5 PHP面向对象设计的五个基准原则.jpg

      里氏替换原则

      如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。

      这句定义的意思是说:每个子类或者衍生类可以毫无问题地替代基类/父类。

      这就好比:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

      代码示例:

      配图6 PHP面向对象设计的五个基准原则.jpg

      接口隔离原则

      接口隔离原则是指:客户端不应该被强制去实现于它不需要的接口。

      有一个清晰的例子来说明示范这条原则。当一个类需要一个大量的设置项,为了方便不会要求客户端去设置大量的选项,因为在通常他们不需要所有的设置项。使设置项可选有助于我们避免产生“胖接口”。

      代码示例:

      配图7 PHP面向对象设计的五个基准原则.jpg

      依赖倒置原则

      这条原则说明两个基本的要点:

      ●高阶的模块不应该依赖低阶的模块,它们都应该依赖于抽象

      ●抽象不应该依赖于实现,实现应该依赖于抽象

      这条起初看起来有点晦涩难懂,但是如果你使用过PHP框架(例如 Symfony),你应该见过依赖注入(DI)对这个概念的实现。虽然它们不是完全相通的概念,依赖倒置原则使高阶模块与低阶模块的实现细节和创建分离。可以使用依赖注入(DI)这种方式来实现它。更多的好处是它使模块之间解耦。耦合会导致你难于重构,它是一种非常糟糕的的开发模式。

      代码示例:

      配图8 PHP面向对象设计的五个基准原则.jpg

      总结

      面向对象设计需要遵守如上原则,不过实际的代码设计一定要简单、简单、简单。在实际编码中要根据情况进行取舍,一味遵守原则,而不注重实际情况的话,可能会让你的代码变的难以理解