软件案例分析ch3课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件案例分析ch3课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 案例 分析 ch3 课件
- 资源描述:
-
1、l简单工厂(Simple Factory)l工厂方法(Factory Method)l抽象工厂模式(Abstract Factory)l建造模式(Builder)l原型模式(Prototype)l又称为静态工厂方法(Static Factory Method);l由一个工厂对象决定创建出哪一种产品类的实例;l所有产品实现同一个接口。public class ImgProcessorFactory public static ImgProcessor createImgProcessor(String format)if(format.equals(“jpg”) return new MyPro
2、cessor(); else if(format.equals(“bmp”) return new BmpProcessor . public Interface ImgProcessor public byte resizeImg(byte data);public class JpgProcessor implements ImgProcessor public byte resizeImg(byte data) . AbstractProductYourProductl类工厂集中了所有的创建逻辑;l可以在不修改客户端的情况下加入新类。l创建逻辑比较复杂;l使用静态方法作为构建方法,无法继
3、承;l引入新产品的时候必须修改工厂类。l是所有构建模式的基础;l将构建部分代码适当修改后,可将对象循环使用。l工厂类有若干个,实现了同样一个工厂接口。l每个工厂类可以创建一类具体的产品。public class BmpFactory public BmpFactory() public ImageProcessor createProcessor() return new BmpProcessor(); public interface Collection . Iterator iterator();public abstract class AbstractList extends Abs
4、tractCollection implements List . Iterator iterator() /代码实现部分 l可以一次增加一个产品族l增加一个产品族必须增加一产品类l每个类只有一个实例。l类的构造函数是私有的。l类使用一个静态属性保存自己的实例。public class SingleInstance private static SingleInstance singleInstance ; private SingleInstance () public synchronized static SingleInstance getInstance() if(bmpProces
5、sor=null) singleInstance =new SingleInstance (); return singleInstance ; public class SingleInstance private static SingleInstance singleInstance ; private SingleInstance () static singleInstance =new SingleInstance ();4.4 抽象工厂方法第三种实现public class SingleInstance private static Map allInstance =newHas
6、hMap(); private SingleInstance () public static synchronzied MyInterface getInstance(String name)Object obj=allInstance.get(name);if(obj=null)obj=Class.forName(name).newInstance();allInstance.put(name,obj);return (MyInterface)obj;l系统只需要一个实例;l对于工具类,最好使用单例模式,而不是静态方法;l对于数据库连接,更不能使用单例模式。l有状态类,用来记录系统当前状态
展开阅读全文