工厂模式在java中的应用x

工厂模式在java中的应用x

ID:39371563

大小:286.25 KB

页数:8页

时间:2019-07-01

工厂模式在java中的应用x_第1页
工厂模式在java中的应用x_第2页
工厂模式在java中的应用x_第3页
工厂模式在java中的应用x_第4页
工厂模式在java中的应用x_第5页
资源描述:

《工厂模式在java中的应用x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、工厂模式简单工厂通常是一个用来创建其他对象的对象。工厂是构造方法的抽象,用来实现不用的分配方案。工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建的各种类型的对象。这些方法可能接收参数,用来指定对象创建的方式,最后返回创建的对象。工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式代码举例//几个Button类classButton{/*...*/}classWinButtonextendsButton{/*...*/}classMacButtonextendsButton{/*...*/}//它们的工厂类interfac

2、eButtonFactory{abstractButtoncreateButton();}classWinButtonFactoryimplementsButtonFactory{ButtoncreateButton(){returnnewWinButton();}}classMacButtonFactoryimplementsButtonFactory{ButtoncreateButton(){returnnewMacButton();}}代码案例:有一个Button类表示按钮,另有它的两个子类WinButton和MacButton分别代表Windows和Mac风格的按钮

3、,那么这几个类和用于创建它们的工厂类在Java中可以如下实现(在此省略所有类和方法的可见性设置):简单工厂模式基本架构工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。抽象产品(Product)角色简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。具体产品(ConcreteProduct)角色是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。适用性下列情况可以考虑使用工厂方法模式:创建对象需要大量重复的代码。创建对象需要访问某些信息,而这些信息不应该包

4、含在复合类中。创建对象的生命周期必须集中管理,以保证在整个程序中具有一致的行为。当每个抽象产品都有多于一个的具体子类的时候,工厂角色怎么知道实例化哪一个子类呢?比如每个抽象产品角色都有两个具体产品。抽象工厂模式提供两个具体工厂角色,分别对应于这两个具体产品角色,每一个具体工厂角色只负责某一个产品角色的实例化。抽象工厂模式代码实现代码内容定义个人信息packagetw.idv.javax.demo.Interface;importjava.util.Calendar;publicinterfacePersonInterface{publicstaticfinalStringR

5、OLE=PersonInterface.class.getName();publicabstractStringgetId()throwsException;publicabstractvoidsetId(Stringid)throwsException;publicabstractStringgetName()throwsException;publicabstractvoidsetName(Stringname)throwsException;publicabstractCalendargetBirthday()throwsException;publicabstrac

6、tvoidsetBirthday(Calendarbirthday)throwsException;}}对个人信息进行实现packagetw.idv.javax.demo.Implements;importjava.util.Calendar;importtw.idv.javax.demo.Interface.PersonInterface;publicabstractclassPersonInterfaceImplimplementsPersonInterface{privateStringid=null;privateStringname=null;privateCal

7、endarbirthday=null;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicCalendargetBirthday(){returnbirthday;}publicvoidsetBirthday(Calendarbirthday){this.birt

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

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

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