软件构造系列之可复用性的构造(3)——关于系统级的可复用性探讨

  • 委托的几种形式
    • dependency:临时性的委托:调用他的方法
    • association :永久性的委托:允许一个对象实例引起另一个对象执行一个动作
    • composition:更强的委托:一个对象包含另一个对象
    • aggregation:对象存在另一个之外,在外部创建,然后作为参数传给构造者。
  • 设计系统级的复用:库和框架
    • 对于设计API
      • 只做好一件事情
      • API要尽可能的小但是要满足要求
      • 实现不影响API
      • 文档很重要:为每一个类、接口、方法、构造器、参数、异常、前置条件、后置条件、副作用、线程安全都要写文档
      • 考虑性能后果
      • API要和其他的平台和谐共存
      • 设计类的时候要尽量不可变,简单、安全、可复用。在有意义的时候使用子类,否则利用委托或者组合。继承是违反封装的
      • 设计方法:模块可以做的事情不要让客户端做,API最好是可以在编译阶段迅速报错
    • 设计框架
      • 白盒框架
        • 通过子类和重写进行扩展
        • 通用的设计模式:模版方法
        • 子类具有主方法并且对框架进行控制,需要理解父类中的实现,一次只有一个实现
        • 称为开发者框架平台
      • 黑盒框架
        • 通过插件接口进行扩展,使用委派组合
        • 只需要扩展接口显示的功能,多个插件,提供更多的模块化
        • 通用设计模式:策略、观察者
        • 通过插件加载机制加载插件并对框架进行控制
        • 成为最终用户框架平台
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值