1.职责
过程化的编码,控制代码的职责是判断文件格式,它判断两次不是一次。面向对象的编码,父类的职责是提供规范,判断格式也只有一次,并且不考虑细节。
2.内聚
内聚是一个模块内部各成分之间相关程度的度量。如果组件职责清晰、分工明确,那么代码较为好维护;如果代码之间关联太广,则维护性较差。(因为你想修改某部分代码的同时,要修改相关代码)。过程化的编码,xml 文件格式判断是分开在两个函数里判断,导致修改时要同时修改,这是低内聚。面向对象的编码,xml 文件格式判断是只在父类的静态方法里,修改一个地方即可,这是高内聚。
3.耦合
当系统各部分代码紧密绑在一起时,就会产生紧密耦合。高耦合使代码扩展和维护异常艰难,而低耦合基本都是分开的功能模块,维护和扩展都非常方便。过程化的编码,xml 处理分别包含在读和写两个函数中,也就是说,两个函数是紧密相连的,修改的时候,要同时修改,增加新文件判断,要同时新增,那么它就是高耦合。面向对象的编码,xml 处理只放在xml 类中,没有和其他类相紧密结合,那么它就是低耦合。
4.设计的四个方向标
没有人能在设计的时候绝对正确。大部分人都要不停地修改代码,因为需求可能发生变化,或者我们加深了对问题的认识。修改代码的时候很容易失去控制。这里加个方法,那里加个类。导致代码和项目结构越发的混乱。
(1).代码重复:如果有,请放到父类或者公共类,合并到一起。
(2).类处理的太多:每个类最好保持独立性,能够尽量单独抽取出来还能使用。
(3).万能类:如果一个类把所有工作都做了,那么请分离,分出父类和子类,父类做规范,子类做实现。
(4).条件语句:如果发现一个类中,条件语句使用太过频繁,特别是同一种条件判断在多个方法中同时出现,那么就说明这个类需要拆分成两个或者更多。