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