• 高内聚与低耦合


    良好的设计肯定要符合这个两个标准,各个组成部分(如类)的具有高内聚与低耦合的特性。

    内聚

    如果说一个类具有定义明确单一功能,并且这个类的一切对执行这个任务是必不可少的,那么这个类就具有内聚性。
    内聚不只局限于类这个层面设计,再更低的层面比如类中的具体方法也要符合;再更高的层面如包、系统、子系统层面也要符合。
    测试内聚性一个很好的方法:用简短的话语描述实体(类,方法,等)的功能,要求话语中不能带“和”,比如这个类的功能是(计算和存储)。

    耦合

    用于描述一个类对另外一个类的依赖程度。
    如果一个系统间的组成部分相互依赖是最小时,这个系统的耦合性较低。当然耦合是不可能完全避免的,我们的目的是消除不必要的耦合,从而增加系统可维护性。
    例子:
    如果说A类已依赖了B类,可能有以下几种形式

    1. B类作为局部变量
    2. B类作为方法参数
    3. B类作为方法返回值类型

    这种依赖可能会引起下面两个问题

    1. 如果A类的系统要重构时,不管是否还需要B类,都还要继续依赖
    2. 如果B类被修改了,A类依赖的地方可能也需要修改
      假设有一个Persion类,类中有一个getBirthDate()方法,还有一个DriversLicense类,有一个isJuniorOperator()方法,用于判断是否是未成年人。
      如果isJuniorOperator(Persion p)直接使用Persion类作为参数
    boolean isJuniorOperator(Person p)
    {
    Date birthDate = p.getBirthDate();
    // return true if birthDate is less than 18 years
    // before today’s date
    }
    

    这种耦合方式,如果Persion类的getBirthDate()方法修改,则DriversLicense类可能也需要修改。建议直接使用Date类型作为参数来降低耦合。

  • 相关阅读:
    JDBC_批量处理语句提高处理速度
    JDBC_获取插入记录的主键值
    JDBC_获取数据库连接
    SmartSprites 智能批量合并 CSS 雪碧图
    移动前端开发技巧摘录
    将已有项目提交到github/从github上pull到本地
    网页设计创新式布局与交互
    如何打好前端游击战
    jQuery Mobile十大常用技巧
    Javascript图片的懒加载与预加载
  • 原文地址:https://www.cnblogs.com/cloud9527/p/14246069.html
Copyright © 2020-2023  润新知