工厂模式学习报告.ppt

工厂模式学习报告.ppt

ID:61530796

大小:811.00 KB

页数:27页

时间:2021-02-25

工厂模式学习报告.ppt_第1页
工厂模式学习报告.ppt_第2页
工厂模式学习报告.ppt_第3页
工厂模式学习报告.ppt_第4页
工厂模式学习报告.ppt_第5页
资源描述:

《工厂模式学习报告.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、“设计模式”学习报告移动互联子公司胡凯2003-08-07概要:模式概论简单工厂模式工厂模式设计模式的实际应用总结相关资源模式概论什么是模式为什么要用模式设计模式的分类什么是模式?模式,其实就是解决某一类问题的方法论。把解决某类问题的方法总结归纳到理论高度,那就是模式。Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。因为每一个模式描述了一个在我们周围不断重复发生的问题

2、,以及问题的解决方案的核心,它是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。为什么要用模式?设计模式的分类GOF的<设计模式>一书中提出了23种模式,而这23种模式又可划分为创建型模式,结构型模式,行为型模式.工厂模式则属于创建型模式.工厂模式专门负责讲大量有共同接口的类实例化,工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类.工厂模式有以下几种形态:简单工厂(SimpleFactory)模式工厂方法(FactoryMethod)模式抽象工厂(AbstractFact

3、ory)模式以下就这几个模式的结构和实例与大家分享一下(其他的我还不太懂.^_^).相信当中有不正确地方,还望大家提出,指正.简单工厂(SimpleFactory)模式简单工厂模式的引进简单工厂模式的结构简单工厂模式的实现简单工厂模式的优缺点简单工厂模式的引论简单工厂模式,又称静态工厂方法模式(StaticFactoryMethodPattern).我们可以先来看一个实际生活中的例子:一个农场公司要向市场销售各类水果,有以下几类水果:葡萄Grape,草莓Strawberry,苹果Apple.考虑到它们的共性,我们一般是定义一个接口为水果(Fruit)publicclassA

4、ppleimplementsFruit{publicvoidgrow(){System.out.println("Appleisgrowing...");}publicvoidharvest(){System.out.println("Applehasbeenharvested.");}publicvoidplant(){System.out.println("Applehasbeenplanted.");}}publicinterfaceFruit{voidgrow();voidharvest();voidplant();}ClassApple:类的实现publiccla

5、ssGrapeimplementsFruit{publicvoidgrow(){System.out.println(“Grapeisgrowing...");}publicvoidharvest(){System.out.println(“Grapehasbeenharvested.");}publicvoidplant(){System.out.println(“Grapehasbeenplanted.");}}publicinterfaceFruit{voidgrow();voidharvest();voidplant();}ClassGrape:publicclas

6、sStrawberryimplementsFruit{publicvoidgrow(){System.out.println("Strawberryisgrowing...");}publicvoidharvest(){System.out.println("Strawberryhasbeenharvested.");}publicvoidplant(){System.out.println("Strawberryhasbeenplanted.");}}publicinterfaceFruit{voidgrow();voidharvest();voidplant();}Cl

7、assStrawberry:publicclassFruitGardener{publicstaticFruitfactory(Stringwhich)throwsBadFruitException{if(which.equalsIgnoreCase("apple")){returnnewApple();}elseif(which.equalsIgnoreCase("strawberry")){returnnewStrawberry();}elseif(which.equalsIgnoreCase("grape")

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

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

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