常用GoF设计模式.doc

常用GoF设计模式.doc

ID:59236723

大小:82.00 KB

页数:13页

时间:2020-10-30

常用GoF设计模式.doc_第1页
常用GoF设计模式.doc_第2页
常用GoF设计模式.doc_第3页
常用GoF设计模式.doc_第4页
常用GoF设计模式.doc_第5页
资源描述:

《常用GoF设计模式.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、常用GoF设计模式--1为了实现分离,一般需要从“纵向”、“横向”、“核心和外围”三个不同的方面进行仔细地地分析和考虑。对于纵向进行分离,常用的处理方法是“分层策略”,或者某些框架技术。对于同一层中各个组件类之间的横向关联关系的分离,常用的处理方法是使用“桥模式”。对于核心功能模块和将要扩展的外围模块之间的分离,常用的处理方法是使用“装饰器模式”。1.基本概念1.1GoF设计模式展示的设计原则GoF设计模式展示了如何处理各种变化,使代码获得最大的可重用性。主要体现以下3种设计策略。针对接口编程,而不是针对具体的实现类编程。优先使用对象组合,而不

2、是类的继承技术。将系统中的“可变部分”和“不可变部分”分离,封装变化点。1.2GoF设计模式分为几大泛型1.2.1创建型模式创建型模式涉及对象实例化时使用的各种模式,有以下几种:(1)工厂方法(FactoryMethod)(2)抽象工厂(AbstractFactory)(3)原型(Prototyoe)(4)生成器(Builder)(5)单例(Singleton)1.2.2结构型模式结构型模型主要描述系统中的类和对象应该怎样结合以构成更大的结构,有以下几种:(1)门面(Facade)(2)代理(Proxy)(3)适配器(Adapter)(4)组合

3、(Composite)(5)装饰(Decorator)(6)桥(Bridge)(7)享元(Flyweight)1.2.3行为型模式行为型模式主要用来封装变化,有以下几种:(1)模版(Template)(2)备忘录(Memento)(3)观察者(Observer)(4)解释器(Interpreter)(5)职责链(ChainofResponsibility)(6)命令(Command)(7)迭代器(Iterator)(8)中介(Mediator)(9)访问者(Visitor)(10)状态(State)(11)策略(Strategy)2.几个常用模

4、式2.1单例模式Singleton类定义了一个getInstance()操作,允许客户端访问它的唯一实例。getInstance()是一个静态方法,主要负责创建自己的一个唯一实例。代码如下:publicclassSingleton{privatestaticSingletoninstance;privateSingleton()//构造方法为“私有”,阻止了外界用new创建本类实例的可能{}publicstaticsynchronizedSingletongetInstance()//创建单例{if(instance==null){instan

5、ce=newSingleton();}returninstance;}其它方法();}【例1】一般对于门面类,需要用单例模式创建它的实例,即在系统中门面类实例只能有一个。对于生成订单的如下类图:为门面接口和门面类命名后的类图为:关于门面类“DAOServiceImple”的代码如下:publicclassDAOServiceImpleimplementsDAOServiceInterface{publicUserInfoDAOInterfaceoneUserInfoDAOImple=null;publicGoodsInfoDAOInterfac

6、eoneGoodsInfoDAOImple=null;privatestaticDAOServiceInterfaceoneDAOServiceInstance=null;privateDAOServiceImple()//构造方法{}publicstaticsynchronizedDAOServiceInterfacegetInstance()//单例方法{if(oneDAOServiceInstance==null)oneDAOServiceInstance=newDAOServiceImple();returnoneDAOServiceI

7、nstance;}publicOrderInfoPOproduceOneOrderInfo(StringregisterUserID,StringgoodsID)//一揽子包干门面方法{oneUserInfoDAOImple=newUserInfoDAOImple();oneGoodsInfoDAOImple=newGoodsInfoDAOImple();UserInfoPOoneUserInfoPO=oneUserInfoDAOImple.selectOneUserInfo(registerUserID);GoodsInfoPOoneGood

8、sInfoPO=oneGoodsInfoDAOImple.selectOneGoodsInfo(goodsID);OrderInfoPOoneOrde

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。