zoukankan      html  css  js  c++  java
  • 读《深入php面向对象、模式与实践》有感(一)

    什么样的代码需要改进?书中给出了四个标准(我个人比较认可这四个标准,实际开发中也的确时常遇到):


    一、代码重复

    用书中的原话讲:“如果你在写代码的时候,总是感觉似曾相识,很可能你的代码已经重复了”。

    代码重复的坏处在于,当你某一段代码需要修改,而与该段代码重复的代码往往也要修改,即你要为同一个问题修改多出相同的代码,而有时你可能会漏掉某处忘记修改。。。。。当发现有代码重复时你应当检查这些重复的代码是否可以放在一起(只写一次),这样当需要修改时,只修改这一处即可。

    举个例子,在thinkphp框架中,model的作用就减少了一定的代码重复。如果你将对数据库的操作写在controller中,则每一次连接数据库的“增删查改”都要从头开始写,而如果将连接数据库及一部分增删查改写在model中,那么下次再进行相同的数据库操作只需调用model即可(这也是model存在的作用之一)。


    二、类知道的太多

    所谓的“类知道的太多”,意思就是这个类与外部的联系有点紧密了。

    这是一个关于全局变量的问题,当一个类使用了全局变量后它会存在两个问题:

    1、这个函数(或类)将很难在不同的环境中被重用(因为并不能保证在不同的环境中都存在该函数所依赖的全局变量)

    2、这个函数(或类)将无法保持独立(因为他依赖于大环境中的全局变量),而这与我们编程的一个大目标是相违背的,即:降低耦合,避免产生相互的依赖关系,应尽量保持各类之间的相互独立。


    三、万能的类

    作者不提倡一个类中的职责过多,我曾经在另一本书中也看到过类似的观点,那本书建议每一个类中最好只包含一个功能。


    四、条件语句

    书中原话:“如果你发现在一个类中频繁地进行特定条件的判断,特别是当你发现这些条件判断在多个方法中出现时,就说明这个类需要拆分成两个或者更多个”。



  • 相关阅读:
    解决“此计算机上已安装了试用版。必须先卸载以前安装的试用版后才能安装另一个试用版。”
    Windows 7 快捷键
    【译】部署Asp.Net MVC 网站到Winodws Azure
    jqGrid专题:搜索
    jqGrid专题:格式化数据
    jqGrid专题:事件文档
    jqGrid专题:方法文档
    jqGrid专题:数据加载
    jqGrid专题:参数文档
    jqGrid专题:jqGrid原理
  • 原文地址:https://www.cnblogs.com/red-code/p/5288639.html
Copyright © 2011-2022 走看看