factory工厂模式之工厂方法FactoryMethod
工厂方法(Factory Method)
* 工厂方法把不同的产品放在实现了工厂接口的不同工厂类(FactoryAImpl,FactoryBImpl...)里面,
* 这样就算其中一个工厂类出了问题,其他工厂类也能正常工作,互相不受影响,
* 以后增加新产品,也只需要新增一个实现工厂接口工厂类,就能达到,不用修改已有的代码
代码解释:
1.创建产品接口Product,并创建2个产品子类android手机、Apple手机,都实现Product接口
public interface Product {}
public class Android implements Product{public Android() {System.out.println("生产一个Android手机...");} }
public class Apple implements Product{public Apple() {System.out.println("生产一个Apple手机...");} }
2.创建工厂接口,添加生产方法(返回值是Product),并针对每个产品,创建对应的工厂实现类
public interface Factory {/*** 生产一个产品* @return*/public Product process(); }
public class AndroidFactory implements Factory {@Overridepublic Product process() {return new Android();} }
public class AppleFactory implements Factory {@Overridepublic Product process() {return new Apple();} }
3.客户端调用:Test
public static void main(String[] args) { // Factory factory = new AppleFactory();//苹果工厂Factory factory = new AndroidFactory();//安卓工厂 factory.process();}
这样,只需要修改new XXXFactory()就可以生产该工厂对应的产品
* 缺陷:
* 工厂方法为每种类型的产品(比如手机类、汽车类...)的 每个实现类(比如手机类[安卓工厂、苹果工厂] 汽车类[宝马工厂、奔驰工厂])创建一个对应的工厂类,当有数百种甚至上千种产品的时候,也必须要有对应的上百成千个工厂类,这就出现了传说的类爆炸,对于以后的维护来说,简直就是一场灾难.....
转载于:https://www.cnblogs.com/yangzhenlong/p/5152403.html
factory工厂模式之工厂方法FactoryMethod相关推荐
- 23种设计模式之简单工厂模式,工厂方法模式,抽象工厂模式详解
工厂模式详解 1. 简单工厂模式 1.1 需求分析 1.2 使用传统方式实现 1.2.1 类图 1.2.2 代码实现 1.2.2.1 新建pizza抽象类 1.2.2.2 希腊披萨实现类 1.2.2. ...
- 工厂模式——简单工厂模式、工厂方法模式和抽象工厂模式
1.简述 工厂模式包括简单工厂模式.工厂方法模式和抽象工厂模式,属于创建型模式. 2.不使用工厂模式 (1)类图分析 一个接口Computer,接口有两个实现类HP和Apple,同时有一个测试类Cli ...
- Java设计模式之 简单工厂模式和工厂方法实验报告书
目录 Java设计模式之 1 简单工厂模式和工厂方法实验报告书 1 实验四:简单工厂模式和工厂方法 2 一.实验目的 2 二.实验内容 2 三.实验步骤 2 3.1简单工厂模式:女娲 2 3.2简单工 ...
- java 三种工厂模式(简单工厂+工厂方法+抽象工厂)
一.简单工厂模式 概述 简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的 实例,被创建的实例通常都具有共同的父类.因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因 ...
- 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细
1. 题目 假设某公司同时用SqlServer.MySql数据库,即会切换两数据库(不同数据库的sql语句有些许差异),同时,两数据库里均有对Users.Departments表的操作(sql代码不一 ...
- 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)
园子里关于23种设计模式的博文已经可以说是成千上万.车载斗量.屯街塞巷.不计其数.数不胜数.摩肩接踵.汗牛充栋.车水马龙.门庭若市.琳琅满目直至让人眼花缭乱了.在这样的大环境下之所以来写设计模式类的博 ...
- 创建型模式:工厂模式(简单工厂+工厂方法+抽象工厂)
一.引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰).Bmw(宝马).Audi(奥迪)),还雇了司机为他开车.不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!& ...
- 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录
1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客前言 ...
- python工厂模式 取代__init___浅析Python 简单工厂模式和工厂方法模式的优缺点
前言 在<设计模式>一书中工厂模式提到了: 工厂方法模式(Factory Method) 抽象工厂模式 (Abstract Factory) 但是在实际过程中还有一种工厂模式经常被使用,那 ...
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一 ...
最新文章
- python自动翻译小工具_Python实现翻译小工具
- mysql ibd文件还原_Mysql 通过ibd文件恢复数据
- 分享:Orthanc 0.4.0 发布,DICOM 服务器
- php 模板使用,在PHP中使用模板的方法
- Python 异常处理 Python 基础教程 try..except
- Sophos将AI技术用于预防恶意IP的安全解决方案中
- 计组第一章(唐朔飞)——计算机系统概述章节总结
- Oracle ORA-27102的解决办法(out of memory)
- MFC 小知识总结五
- linux远程链接Windows桌面,linux远程桌面链接windows
- 概率论与数理统计(第四版) 课后习题解析 盛骤、谢式千 编|高等教育出版社 大学课后习题答案
- 计算机视觉教程3-1:全面详解图像边缘检测算法(附Python实战)
- 郑州调频广播频率表 转载
- 考研英语到底该如何复习?
- 闪讯无线助手-Android端闪讯破解路由器拨号实现原理
- linux内核page结构体的PG_referenced和PG_active标志
- iOS - 解决Warning: Attempt to present which is already presenting
- openstack环境搭建之六horizon配置
- 解读手机拍照的各个参数(延时摄影)
- 启动此程序因为计算机丢失msvcr110,win7系统提示无法启动此程序计算机中丢失MSVCR110.dll的解决方法...
热门文章
- shell 批量修改文件名字
- 手机web——自适应网页设计(html/css控制)
- 阶段3 2.Spring_07.银行转账案例_5 编写业务层和持久层事务控制代码并配置spring的ioc...
- 课后作业3:软件与用户体验调查与分析
- ServiceFabric极简文档-1.2 硬件环境.md
- TCP客户端与服务器的实现
- Java 类和Static关键字
- Scrapy 1.4 文档 02 安装指南
- 关于erlang的-run 的启动参数
- POJ 1141 Brackets Sequence