摘要:
概述在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。意图将抽象部分与实现部分分离,使它们都可以独立的变化。[GOF《设计模式》]我们仍然用日志记录工具这个例子来说明Bridge模式。现在我们要开发一个通用的日志记录工具,它支持数据库记录DatabaseLog和文本文件记录FileLog两种方式,同时它既可以运行在.NET平台,也可以运行在Java平台上。效果及实现要点1.Bridge模式使用“对象间的组合关系”解耦了抽象和实现 阅读全文
posted @ 2011-07-11 15:39
二锅头
阅读(204)
评论(0)
推荐(0)
摘要:
意图将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。实现要点1.Adapter模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。2.Adapter模式有对象适配器和类适配器两种形式的实现结构,但是类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。3.Adapter模式的实现可以非常的灵活,不必拘泥于GOF23中定义的两种结构。例如,完全可以将Adapter模式中的“现存对象”作为新 阅读全文
posted @ 2011-07-11 14:32
二锅头
阅读(229)
评论(0)
推荐(0)
摘要:
意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个结构说明原型模式的客户端程序(client)是依赖于接口(IColorPrototype),而对象的具体实现也是依赖于接口(IColorPrototype)。符合设计模式原则中的依赖倒置原则——抽象不应依赖于具体实现,具体实现应依赖于抽象。实现要点1.使用原型管理器,体现在一个系统中原型数目不固定时,可以动态的创建和销毁,如上面的举的调色板的例子。2.实现克隆操作,在.NET中可以使用Object类的MemberwiseClone()方法来实现对象的浅表拷贝或通过序列化的方式来实现深拷贝。3.Prototype模式同样用于 阅读全文
posted @ 2011-07-11 10:46
二锅头
阅读(204)
评论(0)
推荐(0)

浙公网安备 33010602011771号