Adapter模式
意图:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
以下是 C# 代码的实现
interface ITarget
{
// Methods
void Request();
}
// "Adaptee"
class Adaptee
{
// Methods
public void SpecificRequest()
{
Console.WriteLine("Called SpecificRequest()" );
}
}
// "Adapter"
class Adapter : Adaptee, ITarget
{
// Implements ITarget interface
public void Request()
{
// Possibly do some data manipulation
// and then call SpecificRequest
this.SpecificRequest();
}
}
Bridge模式
意图:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
abstraction 抽象部分提供了 Operation()方法 其实现又调用了 Implementor抽象部分的 OperationImpl()
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。
composite模式
意图:将对象组合成树形结构以表示“部分-整体”的层次结构。C o m p o s i t e 使得用户对单个对象和组合对象的使用具有一致性。
结构 |
如果把Composite模式看成是树形结构的话,那么它主要角色有:
1)树干角色(Component):该角色是一个抽象类,它定义了一些操作增删树叶(Leaf)的操作。
2)树枝角色(Composite):树枝上有很多树干,树枝也是树干的一种。
3)树叶角色(Leaf):树干上的树叶,也就是Component中的具体操作对象。
利用它用户感觉不到他在处理结合还是一个单体。