设计模式
不像程序员的程序媛
代码不会撒谎
展开
-
原型设计模式prototype
基于《研磨设计模式》,没什么实质突破,简单的记录一下问题引人:考虑一个订单系统。该系统里有一个保存订单的业务功能,在这个功能里,用户有这样的需求当订单的预定产品数量超过1000的时候,就需要把订单拆成两份订单来保存,如果拆分后还是超过1000,继续拆分,直到每份订单的预定产品数量不超过1000。一个订单,有个人订单和公司订单。不管什么类型的订单,都要能正常的处理,如何实现???不用模式的解...原创 2011-05-06 11:30:17 · 90 阅读 · 0 评论 -
抽象工厂模式abstractFactory
具体的实现代码见附件问题引人:组装电脑,要选择机箱、电源、主板、CPU等,为了简单,只考虑主板和cpu。主板和cpu都有型号,而且如果要组装cpu的针脚数和主板提供的cpu插口要匹配才行。客户负责选择cpu和主板,然后将这些配件给装机工程师,工程师只负责组装,如何用程序实现这一个过程,尤其是选择配件,不使用抽象工厂模式,对于装机工程师来说,只知道cpu和主板的接口,而不知其具体实现,可以选...原创 2011-05-06 12:38:53 · 91 阅读 · 0 评论 -
外观模式facade
生活中的示例:组装电脑,如组装公司根据你的需求组装一个电脑(需要接触卖CPU、卖主板的)给你,这里的组装公司的角色就是外观模式。分析将卖cpu等的电子市场视为一个系统,卖各个配件的视为模块,需求就变为:客户需要调用系统的各个模块,A,B,C模块,对于客户如果要知道A,B,C模块功能,并自己组装起来,很麻烦,引入Facade模式,客户无需知道各个模块功能,只需和外观模式打交道即可。[...原创 2011-05-06 14:24:13 · 84 阅读 · 0 评论 -
责任链设计模式chainOfResponsibility
问题引人:申请聚餐费用,申请人填写申请单,然后交给领导审阅,如果申请批准下来,领导会通知申请人,然后申请人去财务领费用,如果没有就罢了。项目经理、部门经理、总经理审批的费用额度不同。一般申请人并不知道到底是由谁来处理他的请求。项目经理-》部门经理->总经理,也可能是部门经理->总经理,责任链是变化的。不使用设计模式的解决方式:[code="java"]package notusingM...原创 2011-05-06 14:50:09 · 83 阅读 · 0 评论