负责任的设计对象

1. 信息专家(Information Expert)
如果某个类能够在某方面具有完整的信息,足以实现某个责任,就将这个责任分配给这个类,这个类即所谓的信息专家。
2. 创造者(Creator)
应用情况符合以下条件之一,类A应该具有创建类B的责任:
  (1) A是B的聚合
  (2) A是B的容器
  (3) A有初始化B的数据
(4) A记录B的实例
(5) A频繁使用B
3. 低耦合(Low Coupling)
下类情况A,B两个类产生耦合:
  (1) A具有一个B的属性
  (2) A调用B对象的方法
  (3) A的方法包括对B的引用,例如返回的是B类型或参数是B类型
(4) A是B的子类,或者A是B的实现类
不对陌生人说话(Don’t Talk to Strangers)原则:
  不要相连不需要通信的两个对象,不要做无为的耦合
拇指规则二条:
  (1) 如果A已经与B有连接,如分配责任A给B不合适(违反信息专家模式),那么分配责任B给A。
  (2) 两个模块中的内部类间连接是一个大错误
4. 高内聚(High Cohension)
高内聚是指,我们要努力分解类,使得分解出来的类具有独立的责任。

低内聚是指,一个类单独处理很多不同模块的事务。如即处理数据存取功能,又处理用户接口操作或图形处理。
5. 控制器(Controller)
人们通常将接收和处理系统事件的职责分配给以下类:
  (1) 能全面代表系统、设备或者子系统的类
  (2) 可以代表系统事件发生时用例发生情景的类
  (3) 代表某些卷入真实世界应用中的活动的类(例如人物角色控制器类)

以上这些类就是控制器类。不要将这些责任分配给用户界面类。
6. 多态(Polymorphism)
当相关的行为只是由于种类不同时,可以分配相关的责任给指定的种类。多态可以使设计的内聚提高。
7. 纯虚构(Pure Fabrication)
高内聚与低耦合是相互矛盾的,因为高内聚意味类的数量增多,对象间要合作完成任务,它们之间的连接就要增加,使得耦合提高。要解决这个问题,可以应用纯虚构模式。
8. 间接(Indirection)
要避免对象间直接耦合,可以将协调组件或服务的职责分配给中间对象,这个中间对象称为间接或中介对象。
9. 受保护变化(Protected Variations)
找出预计有变化或不稳定的点,我们有责任为这些变化的点创建稳定的接口。

  受保护变化也可理解为开闭原则(the Open Closed Principle, OCP),一个软件实体应当对扩展开放,对修改关闭。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值