java开发中的23种设计模式详解

java开发中的23种设计模式详解

ID:32658033

大小:48.42 KB

页数:21页

时间:2019-02-14

java开发中的23种设计模式详解_第1页
java开发中的23种设计模式详解_第2页
java开发中的23种设计模式详解_第3页
java开发中的23种设计模式详解_第4页
java开发中的23种设计模式详解_第5页
资源描述:

《java开发中的23种设计模式详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、从追MM谈Java的23种设计模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是牛产鸡翅的Factory.工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。程序代码以下是引用片段:Java代码I.publciclassSample{2

2、3.}4.4.publicclassAextendsSamplef•♦.♦•7.)&9.publicclassBextendsSample{10II.}工厂类处于决泄实例化那个产品类的中心位置Java代码1.publicclassFactory{2.2.〃静态工厂方法,无必要再去实例化这个工厂类,增加没有必要的代码3.publicstaticSamplecreate(intwhich){4.if(which==l)5.returnnewA();6.if(which二二2)7.returnnewB();8.}9.

3、}使用简单工厂初始化一个类Java代码1.SamplenewSample=Factory,create(1);2.工厂方法模式植物接口及两个实现类Java代码1.publicinterfacePlant{)2.2.publicclassPlantAimplementsPlant{3.}5.4.publicclassPlantBimplementsPlant{5.}水果接口及两个实现类Java代码LpublicinterfaceFruit{}2.1.publicclassFruitAimplementsFruit

4、{2.}5.3.publicclassFruitBimplementsFruit}4.}抽象工厂Java代码1・publicinterfaceAbstractFactory{2.publicPlantcreatePlant();3.publicFruitcreatFruit();4.}工厂类AJava代码1.publicClassFactoryAimplementsAbstractFactory{2.publicPlantcreatePlant(){3.returnnewPlantA();4.}5.public

5、FruitcreatFruit(){6.returnnewFruitA();7.}8-}工厂类BJava代码1.publicClassFactoryBimplementsAbstractFactory{2.publicPlantcreatePlant(){3.returnnewPlantB();4.}5.publicFruitcreatFruit(){6.returnnewFruitB();7.}8.}工厂模式分为三种:SimpleFactory模式专门泄义一个类来负责创建其它类的实例,被创建的实例通常都具有共

6、同的父类。FactoryMethod模式将对彖的创建交由父类中定义的一个标准方法来完成,而不是其构造函数,究竟应该创建何种对象由具体的子类负责决定。AbstractFactory模式提供一个共同的接口來创建相互关联的多个对象。一、SimpleFactory模式:水果接口:Fruit.javapackagedesignpattem.factory.simplefactory;publicinterfaceFruit{voidplant();voidenableEat();}苹果类实现水果接口:Apple.java

7、packagedesignpattem.factory.simplefactory;publicckissAppleimplementsFruit{@OverridepublicvoidenableEat(){System.out.printlnC'EatApple1');@Overridepublicvoidplant(){System.out.println(nPlanApple*1);}}葡萄类实现水果接口:Grape.javapackagedesignpattern.factory.simplefact

8、ory;publicclassGrapeimplementsFruit{@OverridepublicvoidenableEat(){System.out.println(HEatGrape11);1@Overridepublicvoidplant(){System.out.println(,,PlantGrape");11买水果工厂类,可根据不同的参数类型返回对应的实例:FruitF

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

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

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