设计模式(四)工厂模式
以武哥的女娲造人为例:
女娲生产人,人有黑白黄三种,同时会说:
1、接口类为:
package 工厂模式;public interface Human {//人有不同颜色public void getColor();//人会说话public void talk();
}
2、下面捏各种人模子:
白:
package 工厂模式;public class whilteman implements Human {@Overridepublic void getColor() {System.out.println("白种人");}@Overridepublic void talk() {System.out.println("英语");}
}
黄:
package 工厂模式;public class yellowman implements Human {@Overridepublic void getColor() {System.out.println("小黄人");}@Overridepublic void talk() {System.out.println("黄语");}
}
黑:
package 工厂模式;public class blackman implements Human {@Overridepublic void getColor() {System.out.println("黑种人");}@Overridepublic void talk() {System.out.println("黑语");}
}
3、模子捏好了,那么需要借助炉子(八卦炉):
八卦炉抽象类:
//八卦炉(生产人)
public abstract class AbstractHumanFactory {public abstract <T extends Human> T createHuman(Class<T> clazz);
}
八卦炉实现类:
package 工厂模式;//实现八卦炉
public class HumanFactory extends AbstractHumanFactory {@Overridepublic <T extends Human> T createHuman(Class<T> clazz) {Human human = null;try {human = (Human) Class.forName(clazz.getName()).newInstance();} catch (Exception e) {// TODO: handle exceptionSystem.out.println("人种产生错误");}return (T) human;}
}
4、所有都弄好了,那么就应该造人了:
package 工厂模式;public class test {public static void main(String[] args) {AbstractHumanFactory bagualu = new HumanFactory();Human blackman = bagualu.createHuman(blackman.class);Human whiteHuman = bagualu.createHuman(whilteman.class);Human yelloHuman = bagualu.createHuman(yellowman.class);}
}
本文学武哥文章,纯属学习
设计模式(四)工厂模式相关推荐
- 设计模式(四)——工厂模式(Factory Pattern)
工厂模式(Factory Pattern) 意义 工厂模式 实现了创建者和调用者的分离.将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦.从而提高项目的扩展和维护性 ...
- 三角形圆形创建与擦除java_设计模式---------------简单工厂模式
设计模式---------------简单工厂模式 一.题目(Question) 使用简单工厂模式设计一个可以创建不同几何形状(如圆形.方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和 ...
- 系统架构技能之设计模式-抽象工厂模式
一.上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式.并且分析了每种模式的应用场景和一些优缺点,我们现在来回顾一下: 简单工厂模式:一个工厂负责所有类型对象的创建,不支持无缝的新增新的类型对象的创建 ...
- Java设计模式(工厂模式>抽象工厂模式和原型模式)
Java设计模式Ⅱ 1.工厂模式 1.1 简单工厂模式 1.2 工厂方法模式 2.抽象工厂模式 3.总结 4.原型模式 4.1 原型模式 4.2 浅拷贝 4.3 深拷贝 5.建造者模式 1.工厂模式 ...
- JavaScript设计模式--简单工厂模式例子---XHR工厂
JavaScript设计模式--简单工厂模式例子---XHR工厂 第一步,Ajax操作接口(目的是起一个接口检测作用) (1)引入接口文件 //定义一个静态方法来实现接口与实现类的直接检验 //静态方 ...
- 策略模式和工厂模式的区别_设计模式之工厂模式-工厂方法模式
设计模式之工厂模式-工厂方法模式 大家好,欢迎来到污污弹公司,今天司小司又接到了一个新活-披萨项目. 来源:凯哥Java(kaigejava) 需求: 披萨项目: 要方便披萨品种的扩展.要便于维护.要 ...
- Java 设计模式之工厂模式(二)
原文地址:Java 设计模式之工厂模式(二) 博客地址:http://www.extlight.com 一.背景 本篇内容是 Java 设计模式创建型模式的第二篇.上一篇主题为 <Java 设计 ...
- 设计模式之工厂模式(三)
上一次我们已经通过代码,简单的认识了工厂方法模式,具体的思路请移步到设计模式之工厂模式(二),进行查看.这次,让我们通过设计模式的思想,来好好认识下工厂方法模式. 创建者和产品 所有工厂模式都用来封装 ...
- php工厂模式和单例模式,php 设计模式之工厂模式、单例模式、注册树模式
php 设计模式之工厂模式.单例模式.注册树模式 在软件工程中,创建型设计模式承担着对象创建的职责,尝试创建适合程序上下文的对象,对象创建设计模式的产生是由于软件工程设计的问题,具体说是向设计中增加复 ...
- 教你如何一篇博客读懂设计模式之—--工厂模式
一篇博客读懂设计模式之-工厂模式 工厂模式在我们日常开发的时候经常用到,相信大家都有了一定的了解,工厂模式是一种创建对象的设计模式,它提供一种创建对象的最佳方式. 主要过程是: 定义一个创建对象的接口 ...
最新文章
- Uva673 平衡的括号
- python指定版本 安装模块包
- VTK:模型之MarchingSquares
- java性能监视_Java 9和应用程序性能监视的激动人心之处
- vue根据指令动态改变title名字
- 使用火狐浏览器的原因是什么?使用英文版火狐的原因又是什么?
- 解决:未能找到 CodeDom 提供程序类型 Microsoft.VJSharp.VJSharpCodeProvider
- 【Oracle】解决问题:pl/sql developer 小钥匙图标下拉框中oracle连接串不加粗显示
- 【破损识别】基于matlab GUI机器视觉+SVM玉米种子破损识别(带面板)【含Matlab源码 1651期】
- 优酷土豆并购是如虎添翼
- 网易公司首席执行官 丁磊
- 永中Office Linux版
- 在线上课中设备突然关机如何关闭直播
- kettle简单的更新与插入
- 成功三大定律:荷花定律、金蝉定律、竹子定律
- openwrt修改默认网关地址_命令下配置ip地址
- StrongSwan IKEv2 搭建Linux 与 Cisco的 GRE Tunnel over IPsec IKEv2
- DispatcherServlet详细分析
- 这个企业邮箱登陆入口更快捷
- ip ban linux,在Linux中fail2ban:unban ip如何(使用fail2ban-client)