软件案例分析ch3.ppt

软件案例分析ch3.ppt

ID:61835763

大小:397.00 KB

页数:50页

时间:2021-03-23

软件案例分析ch3.ppt_第1页
软件案例分析ch3.ppt_第2页
软件案例分析ch3.ppt_第3页
软件案例分析ch3.ppt_第4页
软件案例分析ch3.ppt_第5页
资源描述:

《软件案例分析ch3.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、创建模式创建模式综述简单工厂(SimpleFactory)工厂方法(FactoryMethod)抽象工厂模式(AbstractFactory)建造模式(Builder)原型模式(Prototype)1简单工厂(SimpleFactory)又称为静态工厂方法(StaticFactoryMethod);由一个工厂对象决定创建出哪一种产品类的实例;所有产品实现同一个接口。1.2简单工厂方法类图1.3示例1.4简单工厂方法代码publicclassImgProcessorFactorypublicstaticImgProces

2、sorcreateImgProcessor(Stringformat){if(format.equals(“jpg”){returnnewMyProcessor();}elseif(format.equals(“bmp”)){returnnewBmpProcessor}......}}publicInterfaceImgProcessor{publicbyte[]resizeImg(byte[]data);}publicclassJpgProcessorimplementsImgProcessor{publicbyte

3、[]resizeImg(byte[]data){......}}1.5简单工厂方法代码续1.6简单工厂方法的简化实现1.7示例1.8简单工厂简化实现的另一个例子1.9简单工厂方法优点类工厂集中了所有的创建逻辑;可以在不修改客户端的情况下加入新类。1.10简单工厂方法缺点创建逻辑比较复杂;使用静态方法作为构建方法,无法继承;引入新产品的时候必须修改工厂类。1.11简单工厂方法的作用是所有构建模式的基础;将构建部分代码适当修改后,可将对象循环使用。2工厂方法工厂类有若干个,实现了同样一个工厂接口。每个工厂类可以创建一类具体

4、的产品。2工厂方法2.1工厂方法的一个例子2.2工厂方法部分代码publicclassBmpFactory{publicBmpFactory(){}publicImageProcessorcreateProcessor(){returnnewBmpProcessor();}}2.3工厂方法在java中的一个例子publicinterfaceCollection{...Iteratoriterator();}publicabstractclassAbstractListextendsAbstractCollectioni

5、mplementsList{...Iteratoriterator(){//代码实现部分}}3抽象工厂模式(AbstractFactory)3.2抽象工厂方法的一个例子3.3抽象工厂方法特点可以一次增加一个产品族增加一个产品族必须增加一产品类4单例模式每个类只有一个实例。类的构造函数是私有的。类使用一个静态属性保存自己的实例。publicclassSingleInstance{privatestaticSingleInstancesingleInstance;privateSingleInstance(){}publi

6、csynchronizedstaticSingleInstancegetInstance(){if(bmpProcessor==null){singleInstance=newSingleInstance();}returnsingleInstance;}}4.2单例模式的一种实现方法publicclassSingleInstance{privatestaticSingleInstancesingleInstance;privateSingleInstance(){}static{singleInstance=newS

7、ingleInstance();}}4.3单例模式的另外一种实现方法4.4抽象工厂方法第三种实现publicclassSingleInstance{privatestaticMapallInstance=newHashMap();privateSingleInstance(){}publicstaticsynchronziedMyInterfacegetInstance(Stringname){Objectobj=allInstance.get(name);if(obj==null){obj=Class.forName

8、(name).newInstance();}allInstance.put(name,obj);return(MyInterface)obj;}}4.5什么情况下使用单例模式系统只需要一个实例;对于工具类,最好使用单例模式,而不是静态方法;对于数据库连接,更不能使用单例模式。4.6单例的状态有状态类,用来记录系统当前状态。无状态类

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

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

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