- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工厂模式资料
工厂模式
简单工厂模式
1. 目的??????? ?工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。2 . 简单工厂模式的结构??
3. 一个简单例子
java 代码
//?产品接口?????? ??
public?interface?Product?{ ??
??
????public?void?getName(); ??
??
} ??
??
//?具体产品A ??
public?class?ProductA?implements?Product?{ ??
??
????public?void?getName()?{ ??
????????System.out.println(??I?am?ProductA??); ??
????} ??
??
} ??
??
//?具体产品B ??
public?class?ProductB?implements?Product?{ ??
??
????public?void?getName()?{ ??
????????System.out.println(??I?am?ProductB??); ??
????} ??
??
} ??
??
//?工厂类 ??
public?class?ProductCreator?{ ??
??
????public?Product?createProduct(String?type)?{ ??
????????if?(?A?.equals(type))?{ ??
????????????return?new?ProductA(); ??
????????} ??
????????if?(?B?.equals(type))?{ ??
????????????return?new?ProductB(); ??
????????}?else??
????????????return?null; ??
????} ??
??
????public?static?void?main(String[]?args)?{ ??
????????ProductCreator?creator?=?new?ProductCreator(); ??
????????creator.createProduct(?A?).getName(); ??
????????creator.createProduct(?B?).getName(); ??
????} ??
}??
4. 小结工厂模式的适用范围 ? 在编码时不能预见需要创建哪一种类的实例。 ? 一个类使用它的子类来创建对象。 ? 开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序。??
?
抽象工厂模式?
1. 抽象工厂模式可以说是简单工厂模式的扩展,它们主要的区别在于需要创建对象的复杂程度上。 在抽象工厂模式中,抽象产品可能是一个或多个,从而构成一个或多个产品族。 在只有一个产品族的情况下,抽象工厂模式实际上退化到工厂方法模式。 2. 抽象工厂模式的结构?
?
3. 一个简单例子
java 代码
//??产品?Plant接口?????? ??
public?interface?Plant?{ ??
} ??
??
//?具体产品PlantA,PlantB ??
public?class?PlantA?implements?Plant?{ ??
??
????public?PlantA()?{ ??
????????System.out.println(?create?PlantA?!?); ??
????} ??
??
????public?void?doSomething()?{ ??
????????System.out.println(??PlantA?do?something??); ??
????} ??
} ??
??
public?class?PlantB?implements?Plant?{ ??
????public?PlantB()?{ ??
????????System.out.println(?create?PlantB?!?); ??
????} ??
??
????public?void?doSomething()?{ ??
????????System.out.println(??PlantB?do?something??); ??
????} ??
} ??
??
//?产品?Fruit接口 ??
public
您可能关注的文档
最近下载
- 班高中班主任培训 课件.ppt VIP
- 小学美术教学中趣味教学模式的运用.pptx VIP
- 宝安区地图深圳市宝安区乡镇街道地图高清矢量可填充编辑地图PPT模板.pptx
- 儿童文学教程(第4版)课件 方卫平 第5--14章 童话 寓言---- 儿童文学与小学习作教学 .ppt
- 一例儿科患者液体外渗不良事件的案例分析课件.pptx VIP
- 临近既有线施工安全方案.doc VIP
- 2023年广东省深圳市蛇口育才教育集团育才二中中考二模语文试题(含解析).pdf VIP
- 2025乌兰察布辅警考试真题.docx VIP
- 南山区地图深圳市南山区乡镇街道地图高清矢量可填充编辑地图PPT模板.pptx
- 2024-2030年中国精品咖啡行业市场深度分析及投资潜力预测报告.docx VIP
文档评论(0)