工厂模式
来源:互联网 发布:java adb命令 编辑:程序博客网 时间:2024/05/16 14:53
工厂模式定义
在面向对象程序设计中,工厂通常是用来创建其他对象的对象,工产模式根据不同的参数来实现不同的分配方案和创建对象。
在工产模式中,我们创建对象时不会对客户端暴露创建逻辑,而且是通过使用一个共同的接口来指向新创建的对象。
工厂模式通常分为:
普通工厂模式
多个工厂方法模式
静态工厂方法模式
普通工厂模式
例如用工厂模式创建人。先创建一个男人,他每天都“吃饭、睡觉、打豆豆”,然后我们再创建一个女人,她每天也“吃饭、睡觉、打豆豆”。
代码结构如下图
具体代码如下:
public interface Human { public void eat(); public void sleep(); public void beat();}
public class Male implements Human { @Override public void eat() { // TODO Auto-generated method stub System.out.println("Male can eat"); } @Override public void sleep() { // TODO Auto-generated method stub System.out.println("Male can sleep"); } @Override public void beat() { // TODO Auto-generated method stub System.out.println("Male can beat"); }}
public class female implements Human { @Override public void eat() { // TODO Auto-generated method stub System.out.println("Female can eat"); } @Override public void sleep() { // TODO Auto-generated method stub System.out.println("Female can sleep"); } @Override public void beat() { // TODO Auto-generated method stub System.out.println("Female can beat"); }}
public class FactoryTest { public static void main(String[] args){ HumanFactory factory =new HumanFactory(); Human male = factory.createHuman("male"); male.eat(); male.sleep(); male.beat(); }}
public class HumanFactory { public Human createHuman(String gender){ if(gender.equals("male")){ return new Male(); }else if(gender.equals("female")){ return new female(); }else{ System.out.println("sorry"); return null; } }}
运行结果如下:
Male can eat
Male can sleep
Male can beat
多个工厂方法模式
多个工厂模式就是提供多个方法,分别创建对象。
public class HumanFactory { public Male createMale(){ return new Male(); } public female createfemale(){ return new female(); }}
其他类代码都不变
静态工厂方法模式
public class HumanFactory { public static Male createMale(){ return new Male(); } public static female createfemale(){ return new female(); }}
其他类代码不变
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- idea 版本提交忽略文件或文件夹
- 百思不得姐视频爬取
- 网站新手必须学习的CSS基础语法
- kuangbin带你飞专题一(搜索)B
- 动态分区分配--最先适应分配算法
- 工厂模式
- 八皇后
- loadrunner 脚本优化-事务时间简介
- Cocoapod的安装
- 525. Contiguous Array
- 有10000000条数据,用以下什么排序算法用时最短
- 初学飞行器之环境搭建(基于Linux)
- kibana4 插件开发1-基础篇
- php定时修改sql数据,谁能破?