10 2011 档案
摘要:
这是一个老生常谈的设计模式系列文章,本系列力图从最简洁的语言和最易理解的实例来让大家认识设计模式的思想和思路,从而在实际项目中能够用到一二。现在将本系列文章详列如下:
极速理解设计模式系列:1.建造者模式(Builder Pattern)
极速理解设计模式系列:2.观察者模式(Observer Pattern)
极速理解设计模式系列:3.代理模式(Proxy Pattern)
极速理解设计模式系列:4.原型模式(Prototype Pattern)
极速理解设计模式系列:5.组合模式(Composite Pattern)
极速理解设计模式系列:6.适配器模式(Adapter Pattern)
极速
阅读全文

摘要:
六个角色:抽象访问者(Visitor)、具体访问者(ConcreteVisitor)、抽象元素(Element)、具体元素(ConcreteElement)、对象结构类(ObjectStructure)、客户端(Client)
抽象访问者(Visitor):抽象出访问元素的动作
具体访问者(ConcreteVisitor):实现访问元素的动作
抽象元素(Element):定义一个接受访问的操作,其参数为访问者
具体元素(ConcreteElement):实现接受访问操作
对象结构类(ObjectStructure):可以枚举元素,并且管理元素
客户端(Client) :定义元素集合,然后接受不同访问者的访问
实现思路:向对象结构类
阅读全文

摘要:
五个角色:抽象命令类(Command)、具体命令类(ConcreteCommand)、调用者(Invoker)、接收者(Receiver)、客户端(Client)
抽象命令类(Command):声明执行操作的接口
具体命令类(ConcreteCommand):内部有一个接收者,调用接收者实现操作。
调用者(Invoker):要求命令执行某个操作
接收者(Receiver):处理具体的操作
客户端(Client):设定好三方链接,调用者直接操作即可。
实现思路:创建一个命令对象,然后设定其接收者,让调用者引用到一个命令对象,最后调用者直接启动操作即可。
阅读全文

摘要:
五个角色:迭代器(Iterator)、具体迭代器(ConcreteIterator)、聚合(Aggregate)、具体聚合(ConcreteAggregate)、客户端(Client)
迭代器(Iterator):定义遍历和访问元素的接口
具体迭代器(ConcreteIterator):实现迭代器接口并且跟踪聚合对象当前位置
聚合(Aggregate):定义一个迭代器对象接口
具体聚合(ConcreteAggregate):实现迭代器对象,并且返回具体迭代器实例
客户端(Client):调用迭代器对聚合对象进行遍历
实现思路:向具体聚合对象添加元素,然后调用迭代器遍历聚合对象
阅读全文

摘要:
五个角色:抽象中介者(Mediator)、具体中介者(ConcreteMediator)、同事类(Colleague)、具体同事类(ConcreteColleague)、客户端(Client)
抽象中介者(Mediator):定义接口让同事对象之间通讯
具体中介者(ConcreteMediator):实现接口,并且协调维护同事对象
同事类(Colleague):其内部引用中介者对象,并且提供一个接口发送消息
具体同事类(ConcreteColleague):实现接口,向中介者发送消息
客户端(Client) :让具体同事类认识中介者,并且让中介者认识同事,然后同事发送消息即可。
实现思路:客户端让中介者和同事互相认识,然后同事向中介者发送消息,中介者
阅读全文

摘要:
五个角色:抽象轻量级类(Flyweight)、具体轻量级类(ConcreteFlyweight)、不共享具体轻量级类(UnsharedConcreteFlyweight)、轻量级类工厂(FlyweightFactory)、客户端(Client)
抽象轻量级类(Flyweight):声明一个接口并且有一些属性可以设置对象的状态
具体轻量级类(ConcreteFlyweight):实现接口,并且有相关的状态
不共享具体轻量级类(UnsharedConcreteFlyweight):不被共享的具体轻量级类
轻量级类工厂(FlyweightFactory):创建并且管理Flyweight对象,当客户端发出轻量级类请求时提供一个已创建或者未创建的对象
客户端(Clie
阅读全文

摘要:
三个角色:外形类(Facade)、子系统类(SubSystem)、客户端(Client)
外形类(Facade):整合子系统,并且处理客户的请求
子系统类(SubSystem):实现独立的功能,处理Facade任务
客户端(Client): 只需要调用外形类接口即可。
实现思路:客户端调用外形类,在外形类中调用相应的子系统即可。
阅读全文

摘要:
四个角色:传递者接口(Handler)、具体传递者(ConcreteHandler)、客户端(Client)
传递者接口(Handler):定义一个处理请求的接口和实现下一个对象
具体传递者(ConcreteHandler):如果能够处理就处理,否则让上级处理请求
客户端(Client) :创立责任链,并向链中对象提出请求
实现思路:传递者接口设置上级然后提供一个处理请求的方法,在具体传递中如果能够处理就处理,否则就让其上级来处理,客户端组织其责任链,并且设置请求。
阅读全文
