欢迎来到天天文库
浏览记录
ID:40312872
大小:59.45 KB
页数:14页
时间:2019-07-30
《简单工厂(Simple Factory)模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.1 简单工厂(SimpleFactory)模式简单工厂模式是类的创建,又叫静态工厂方法(StaticFactoryMethord)模式。简单工厂模式是由一个工厂对象决定创造哪一种产品类的实例。 1.1.1 工厂模式的几种形态工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态的决定将哪一个类实例化,工厂模式有以下几种形态: l简单工厂(SimpleFactory)模式:又称静态工厂方法(StaticFactoryMethord)模式。 l工厂方法(FactoryMethod)模式:又称多态性
2、工厂(PolymorphicFactory)模式或虚拟构造子(VirtualConstructor)模式。 l抽象工厂(AbstractFactory)模式:又称工具箱(Kit或Toolkit)模式。下图所示的就是简单工厂模式的简略类图。简单工厂模式,或称静态工厂方法模式,是不同工厂方法模式的一个特殊实现。在Java语言中,通常的工厂方法模式不能通过设计功能的退化给出静态工厂方法模式。 1.1.2 简单工厂模式的引进(一般模式)比如有一个农场,生产各种水果,有苹果(Apple)、草莓(Strawberr
3、y)、葡萄(Grape);农场的园丁(FruitGardener)要根据客户的需求,提供相应的水果。下面看看是如何用简单工厂模式实现这个过程的,如下图: 此模式的实现源码如下: 1.1.2.1 产品接口-水果接口:Fruit.javapackagecom.lavasoft.patterns.simplefactory.ybgc;/** *CreatedbyIntelliJIDEA. *FileName:Fruit.java *User: LavaSoft *Date: 2006-12-1 *Ti
4、me: 0:26:51 *《Java与模式》(--阎宏博士著)读书笔记 *工厂模式模式--简单工厂模式--一般模式 *ReadMe: 抽象产品角色:工厂的水果产品接口--水果 */publicinterfaceFruit{ /** *种植 */ voidplant(); /** *生长 */ voidgrow(); /** *收获 */ voidharvest();} 1.1.2.2 产品-平果类:Apple.javapackagecom.
5、lavasoft.patterns.simplefactory.ybgc;/** *CreatedbyIntelliJIDEA. *FileName:Apple.java *User: LavaSoft *Date: 2006-12-1 *Time: 0:47:25 *《Java与模式》(--阎宏博士著)读书笔记 *工厂模式模式--简单工厂模式--一般模式 *ReadMe: 水果工厂的产品:苹果 */publicclassAppleimplementsFruit{ privateintt
6、reeAge; /** *种植 */ publicvoidplant(){ System.out.println("Applehasbeenplanted."); } /** *生长 */ publicvoidgrow(){ System.out.println("Appleisgrowing..."); } /** *收获 */ publicvoidharvest(){ System.out.pri
7、ntln("Applehasbeenharvested."); } /** *@return返回树龄 */ publicintgetTreeAge(){ returntreeAge; } /** *设置树龄 */ publicvoidsetTreeAge(inttreeAge){ this.treeAge=treeAge; }} 1.1.2.3 产品-草莓类:Strawberry.javapackagecom.lavasoft.
8、patterns.simplefactory.ybgc;/** *CreatedbyIntelliJIDEA. *FileName:Strawberry.java *User: LavaSoft *Date: 2006-12-1 *Time: 0:45:09 *《Java与模式》(--阎宏博士著)读书笔记 *工厂模式模式--简单工厂模式--一般模式 *ReadMe: 水果工厂的产品:草莓 */publicclassStrawbe
此文档下载收益归作者所有