适配器模式
定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
两种实现方式:对象适配器和类适配器(多重继承)。
问题:1)一个适配器只能封装一个类吗?适配器工作是将一个接口转换成另一个。对于复杂的现实世界,为了解决问题我们可以让一个适配器包装多个被适配者。这涉及另一个模式--外观模式。
2)如果系统中新旧并存,旧部分期望旧厂商接口,但是我们已经使用了新厂商的接口编写了一部分,这时候该怎么办?这里使用适配器,那里却使用未包装的接口。 我们可以创建一个双向适配器,支持两边的接口。双向适配器实现了两个接口,这样就可以当旧的接口,或者当新的接口使用。
外观模式:
定义:外观模式提供一个同一的接口,用来访问系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
要点:
1)外观不只是简化了接口,也将客户从组件的子系统中解耦。
2)外观和适配器可以包装许多类,但是外观的意图是简化接口,而适配器的意图是将接口转化成不同接口。
设计原则:“最少知识”原则 ,该原则告诉我们要减少对象之间的交互,只和你的密友谈话。(此原则减少了对象之间的依赖,研究显示这会减少软件的维护成本;但是也会导致更多的“包装”类被制造,以处理和其他组件的沟通,这可能会导致复杂度和开发时间的增加,并降低运行时的性能。)