设计模式
xxb2008
这个作者很懒,什么都没留下…
展开
-
类图说明
+:public -:private#:protected 抽象类:斜体显示接口: 有 > 标识 关系线--注释1、继承: 空心三角 + 实线2、接口实现: 空心三角 + 虚线3、关联关系: 实线箭头→ 动植物和气候相关联4、聚合关系: 空心菱形◇ + 实线箭头→ 弱 “拥有” 关系, 对象A 可以 包含 对象B ,但 B 不是 A 的一部分; a原创 2012-09-07 13:35:02 · 894 阅读 · 0 评论 -
状态模式(State)----行为笔记
【状态模式】(State)当一个对象的内部状态改变时,改变其行为。看起来就好像改变了它的类一样。一、涉及角色【抽象状态】(State):状态接口,用于封装 环境对象(Context) 的一个特定状态所对应的行为。【具体状态】(ConcreteState):具体状态类,封装实现了 环境对象(Context) 状态所对应的行为。【环境角色】(Context):定义客户端所感兴趣原创 2015-04-14 11:02:18 · 721 阅读 · 0 评论 -
装饰模式(Decorator)----结构笔记
动态地给一个对像添加一些额外的职责;是继承关系的一个替代方案有效区分出:装饰性逻辑代码 ,与核心代码可以形成链式装饰。涉及角色:抽象构件(Component)角色: 一个对象的接口,可以给这些对象添加装饰代码!(可无)具体构件(Concrete Component)角色:具体的对象。也可以给它添加装饰代码抽象装饰(Decorator)角色:也是Component原创 2013-04-16 09:21:31 · 620 阅读 · 0 评论 -
多人联机射击游戏中的设计模式应用(二)
(6)观察者模式 联机射击游戏可以实时显示队友和敌人的存活信息,如果有队友或敌人阵亡,所有在线游戏玩家将收到相应的消息,可以提供一个统一的中央角色控制类(CenterController)来实现消息传递机制,在中央角色控制器中定义一个集合用于存储所有的玩家信息,如果某玩家角色(Player)阵亡,则调用CenterController的通知方法notifyPlayers(),该方法转载 2013-02-05 13:28:06 · 1519 阅读 · 0 评论 -
多人联机射击游戏中的设计模式应用(一)
为了方便大家更加系统地学习和掌握各种常用的设计模式,下面通过一个综合实例——“多人联机射击游戏”来学习如何在实际开发中综合使用设计模式。 反恐精英(Counter-Strike, CS)、三角洲部队、战地等多人联机射击游戏广受玩家欢迎,在多人联机射击游戏的设计中,可以使用多种设计模式。下面我选取一些较为常用的设计模式进行分析: (1)抽象工厂模式转载 2013-02-05 13:26:03 · 2397 阅读 · 1 评论 -
门面模式(Facade)----结构笔记
Facade(门面模式)组成角色门面(Facade)角色:将客户端的请求委派到相应的子系统。(单例操作,但不是只有一个门面)注意:不能向系统加入新的行为。子系统(SubSystem)角色: 动机:用户只需要直接与Facade角色交互,用户与子系统之间的复杂关系由外观角色来实现,降低系统耦合。Facade模式:为子系统中的一组接口提供一个统一的接口,Facade定原创 2013-02-02 16:42:20 · 586 阅读 · 0 评论 -
策略模式(Strategy)----行为笔记
一:涉及角色: 1、环境角色(Context):持有Strategy类(抽象算法类)引用 2、抽象策略(Strategy):接口 or 抽象类 3、具体策略(ConcreteStrategy) 包装相关算法或行为注意: 共用代码(公共行为),可以代码上移到:Strategy 抽象类!二、何时 使用 何种 具体策略 呢? 策略模式 不负责做这个决定,应当由 客户端自己 决定!原创 2012-09-08 00:05:22 · 453 阅读 · 0 评论 -
观察者模式(Observer)----行为笔记
观察者模式(Observer)----行为笔记Observer模式:定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 拓展:事件委托一、涉及角色:1、 抽象主题(Subject):把所有观察者对象保存在一个集合里,称为被观察者(ObServable)一般用抽象类实现,2、 具体主题(ConcreteSubject原创 2012-09-13 22:35:07 · 580 阅读 · 0 评论 -
模版方法(Template)----行为笔记
一:涉及角色: 抽象模版(Abstract Template): 1、定义一个 or 多个抽象(方法),给子类实现, 2、定义实现一个模板方法,调用(1) 中定义的抽象方法,作为 代码逻辑骨架(即操作步骤),子类中实现那些抽象方法,做相应的具体实现, 具体类(Concr原创 2012-09-09 11:08:57 · 411 阅读 · 0 评论 -
备忘录模式(Memento)----行为笔记
备忘录(Memento)对象:一个用来存储另外一个对象内部状态(信息)的快照的对象用意:在不破坏 封装 的条件下,捕捉一个对象的状态(信息),并外部化存储起来,从而可以在将来合适的时候把对象还原到存储起来的状态。 一、涉及角色:a) 发起人(Originator):创建一个含有当前的内部 信息(状态)的 备忘录(Memento)对象。使用备忘录对象存储其内部信息(状态);b)原创 2012-09-17 22:24:18 · 456 阅读 · 0 评论 -
责任链模式(Chain of Responsibility)----行为笔记
责任链模式(Chain of Responsibility)----行为笔记使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条责任链传递请求,直到有对象处理它为止 一、涉及对象抽象处理者(Handler):定义一个处理请求的接口;(接口、抽象类)具体处理者(ConcreteHandler):在接到请求后,可以选择将请求处原创 2012-09-14 00:34:33 · 479 阅读 · 0 评论 -
简单工厂模式(SimpleFactory)----创建笔记
简单工厂模式(SimpleFactory)----创建笔记一、涉及角色:a) 工厂类(Factory): 在客户端直接调用,创建产品对象,由java具体实现。b) 抽象产品(Product):java接口或Java抽象类实现。具体产品父类or接口。c) 具体产品(Concrete Product):工厂类创建的具体产品 二、故事说明 1、FACTOR原创 2012-09-27 23:09:14 · 509 阅读 · 0 评论 -
访问者模式(Visitor)----行为笔记
访问者模式(Visitor)表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 适用于数据结构相对稳定的系统!一、 涉及角色抽象访问者(Visitor):声明了一个或多个访问操作,形成所有的具体元素角色必须实现的接口具体访问者(ConcreteVisitor):实现抽象访问者角色所声明的接原创 2012-09-20 20:46:11 · 678 阅读 · 0 评论 -
命令模式(Command)----行为笔记
命令模式(Command)将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作! 一、涉及角色客户(Client)角色:创建一个具体命令(ConcreteCommand)对象,并确定其接收者抽象命令(Command)角色:声明执行操作的接口(接口 or抽象类);具体命令(ConcreteCommand)角色:将一个接原创 2012-09-16 22:20:38 · 543 阅读 · 0 评论