工厂模式在java中的应用.pptx_第1页
工厂模式在java中的应用.pptx_第2页
工厂模式在java中的应用.pptx_第3页
工厂模式在java中的应用.pptx_第4页
工厂模式在java中的应用.pptx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工厂模式 简单工厂通常是一个用来创建其他对象的对象。工厂是构造方法 的抽象,用来实现不用的分配方案。 工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建 的各种类型的对象。这些方法可能接收参数,用来指定对象创建 的方式,最后返回创建的对象。 工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简 单工厂模式是工厂模式家族中最简单实用的模式 代码举 例 /几个Button类 class Button/* .*/ class WinButton extends Button/* .*/ class MacButton extends Button/* .*/ /它们的工厂类 interface ButtonFactory abstract Button createButton(); class WinButtonFactory implements ButtonFactory Button createButton() return new WinButton(); class MacButtonFactory implements ButtonFactory Button createButton() return new MacButton(); 代码案例:有一个BUTTON类表示按钮,另有它的 两个子类WINBUTTON和MACBUTTON分别代表 WINDOWS和MAC风格的按钮,那么这几个类和用于 创建它们的工厂类在JAVA中可以如下实现(在此省 略所有类和方法的可见性设置): 简单工厂模式基本架构 u 工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可 以被外界直接调用,创建所需的产品对象。 u 抽象产品(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的 公共接口。 u 具体产品(Concrete Product)角色 是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个 具体类的实例。 适用性 下列情况可以考虑使用工厂方法模式: u创建对象需要大量重复的代码。 u创建对象需要访问某些信息,而这些信 息不应该包含在复合类中。 u创建对象的生命周期必须集中管理,以 保证在整个程序中具有一致的行为。 当每个抽象产品都有多于一个的具 体子类的时候,工厂角色怎么知道实例 化哪一个子类呢?比如每个抽象产品角 色都有两个具体产品。抽象工厂模式提 供两个具体工厂角色,分别对应于这两 个具体产品角色,每一个具体工厂角色 只负责某一个产品角色的实例化。 抽象工厂模式 代码实现 代码内容 定义个人信息 package tw.idv.javax.demo.Interface; import java.util.Calendar; public interface PersonInterface public static final String ROLE = PersonInterface.class.getName(); public abstract String getId() throws Exception; public abstract void setId(String id) throws Exception; public abstract String getName() throws Exception; public abstract void setName(String name) throws Exception; public abstract Calendar getBirthday() throws Exception; public abstract void setBirthday(Calendar birthday) throws Exception; 对个人信息进行实现 package tw.idv.javax.demo.Implements; import java.util.Calendar; import tw.idv.javax.demo.Interface.PersonInterface; public abstract class PersonInterfaceImpl implements PersonInterface private String id = null; private String name = null; private Calendar birthday = null; public String getId() return id; public void setId(String id) this.id = id; public String getName() return name; public void setName(String name) = name; public Calendar getBirthday() return birthday; public void setBirthday(Calendar birthday) this.birthday = birthday; 下一页 代码内容 继承 PersonInterfaceImpl ,写 一个描述孩童基本资料 Children Package tw.idv.javax.demo.Extends; Import tw.idv.javax.demo.Implements.PersonInterfaceImpl; public class Children extends PersonInterfaceImpl 继承 PersonInterfaceImpl ,写 一个描述儿童状况 package tw.idv.javax.demo.Extends; Import tw.idv.javax.demo.Implements.PersonInterfaceImpl; public class Adult extends PersonInterfaceImpl private int income = 0; public int getIncome() return income; public void setIncome(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论