php上的重构:改进现有代码的设计两个对象的移动特性
思维导图指标 uff1a
Oslash;移动方法(运动功能)
Oslash;运动场(运动范围)
Oslash;提取类(炼油类)
Oslash;内联类(内联类,即合并当前类其他类)
Oslash;隐藏委托(隐藏委托关系)
Oslash;去除中间人(去掉中间人)
Oslash;引进国外的方法(外部功能介绍)
Oslash;引入本地扩展(引入本地扩展)
介绍
承接以上PHP文章重构:改进现有代码的设计,组织您的功能,继续进行重构方面的工作。
技术术语
委托代表:
封装:封装
介绍:介绍
包装:盖
前言
决定把责任放在哪里——使用重构来改变最初的设计。
解释:
1类是超载和臃肿的责任分离提取类。
2,类不承担太多的责任,也不再有单一的理由存在——内联类将其集成到另一个类中。
3,类使用另一个类隐藏委托来隐藏关系。
4,要进行,如果(3)客户端由中间人代表类很多调用函数(这里只是一个简单的调用,只做跳转,而中间人没有做太多的业务逻辑,如10个委托类方法中对应10种方法的中间人)——删除中间人,直接使用委托类,可以使用委托方法。
移动方法
如果一个类中的方法与另一个类有许多交互,我们将在另一个类中创建一个具有类似功能的新函数,将旧函数转换成简单的委托方法,或者删除旧函数。
类图:
动机:
1。如果一个类与另一个类高度耦合,我将把方法移动。
2,移动某一范围的范围,检查是否使用另一类的次数,必须在对象的数量中使用。
搬场
状态:您的类中的字段更多地被另一个类使用,然后在另一个类中设置新字段,并修改旧字段。
提取类
状态:一个类执行两个类,然后构建一个新类,将相关字段和方法从旧类移到新类。
将类内联化
状态:您的一个类没有做太多的事情(没有承担足够的责任),然后将类的所有特性移到另一个类,然后删除原来的类。
动机:内联类是提取类相反。以提取类实例对过去因为电话号码只用于阅读代码和号码。
隐藏委托关系
状态:客户直接调用服务器对象委托类的方法,然后在服务器端建立方法函数方法来隐藏信任关系。
每个学习了对象技术的人都知道,虽然PHP允许你公开字段,但是你也应该隐藏字段(私有)。随着越来越多的经验,有很多东西值得封装。
请看下面的例子:
$人-> getdepartment()-> getmanager()清楚地表明,如果我们想找到Xiaocai的领导,我们也要通过部门,所以我们需要隐藏的部门。它可以减少耦合。
去除中间人
情境:如果一个类做了太多简单的委托,那么我们直接调用委托类。
动机:在隐藏委托的例子中,当部门有更多的新方法时,我们必须为委托人添加相应的方法,此时,人是一个中间人,然后我们应该调用委托类部门。
重构的意义是,只要你解决问题,你就不必说对不起。
引进国外的方法
现状:有一类的额外功能,客户端需要使用previousend上课,但是你不能修改这个类previousend。然后你建立一个功能在客户端和采取previousend实体作为参数。
介绍当地的延伸
状态:您的类需要一些额外的函数,但是您不能修改当前类,然后构建一个新类来包含这些函数。使用子类或包装器。这通常是在您不能修改源代码时使用的。
以上面介绍的国外方法为例
总结
需要注意的是,提取类和内联类、隐藏委托和删除中间人都是相反的过程。为了具体理解,我们可以在前言中看到流程图。
隐藏委托我们过去使用少量的委托、方法和删除中间人,委托方法用于调用大量时间,我们可以直接使用委托类,称为委托方法,以及其他我们所保留的部分。
提取类和内联类、提取类常常用来承担太多的责任,成为臃肿的类,而当当前类过于不负责任时,经常使用内联类。