文章分类 -  设计模式学习

走向软件设计师,没有最好,只有最适合!
设计系列之状态模式(State Pattern)
摘要:设计系列之状态模式(State Pattern) 意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 场景 我们在制作一个网上书店的网站,用户在书店买了一定金额的书后可以升级为银会员、黄金会员,不同等级的会员购买书籍有不同的优惠。你可能会想到可以在User类的BuyBook方法中判断用户历史消费的金额来给用户不同的折扣,在... 阅读全文

posted @ 2009-06-15 09:13 张国涛 阅读(370) 评论(0) 推荐(2)

设计模式系列文章之Chain Of Resp(责任链模式)
摘要:设计模式系列文章之Chain Of Resp(责任链模式) 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象能处理请求为止。 场景 假设我们在制作一个游戏的客服系统,客服有三种角色,分别是普通客服、客服经理和客服总监。玩家在网站中提问后,根据问题的分类和重要性处理的流程不一样。规则如... 阅读全文

posted @ 2009-06-13 08:14 张国涛 阅读(227) 评论(0) 推荐(0)

设计模式系列之Command(命令模式)
摘要:设计模式系列之Command(命令模式) 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 场景 我们知道,网络游戏中的客户端需要不断把当前人物的信息发送到游戏服务端进行处理(计算合法性、保存状态到数据库等)。假设有这样一种需求,在服务端收到客户端的请求之后需要判断两次请求间隔是不是... 阅读全文

posted @ 2009-06-11 10:46 张国涛 阅读(151) 评论(0) 推荐(0)

设计模式系列之Mediator模式
摘要:设计模式系列之Mediator模式(中介者模式) 意图 用一个中介对象来封装一系列对象的交互。中介者使得各对象不需要显式相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。 场景 我们知道,一个网络游戏往往有很多大区。每一个大区可以是一组服务器,也可以是多组服务器,在这里假设一个大区是一组服务器。为了效率,一般每个大区都会有一个数据库,玩家的创建角色、充值、消费... 阅读全文

posted @ 2009-06-11 08:29 张国涛 阅读(309) 评论(0) 推荐(0)

设计模式之观察者模式妙解
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->设计模式的原则1、"开-闭"原则——模块应对扩展开放,而对修改关闭。2、里氏代换原则——如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是继承复用的一个基础。3、合成复用原则——要少用继承,... 阅读全文

posted @ 2009-06-09 14:17 张国涛 阅读(166) 评论(0) 推荐(0)

设计模式原则详解
摘要:设计模式的原则1、"开-闭"原则——模块应对扩展开放,而对修改关闭。2、里氏代换原则——如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是继承复用的一个基础。3、合成复用原则——要少用继承,多用合成关系来实现。4、依赖倒转原则——抽象不应该依赖与细节,细节应当依赖与抽象。 要针对接口编程,而不是针对实现编程。5、接口隔离原则——每一个接口应该是一种... 阅读全文

posted @ 2009-06-09 13:54 张国涛 阅读(317) 评论(0) 推荐(0)

c#设计模式系列之Visitor模式
摘要:设计模式总纲: 1、"开-闭"原则——模块应对扩展开放,而对修改关闭。2、里氏代换原则——如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是继承复用的一个基础。3、合成复用原则——要少用继承,多用合成关系来实现。4、依赖倒转原则——抽象不应该依赖与细节,细节应当依赖与抽象。 要针对接口编程,而不是针对实现编程。5、接口隔离原则——每一个接口应该是一... 阅读全文

posted @ 2009-06-09 13:44 张国涛 阅读(431) 评论(0) 推荐(0)