工厂模式可以分为三类:
1)简单工厂模式(Simple Factory)
2)工厂方法模式(Factory Method)
3)抽象工厂模式(Abstract Factory)
1、简单工厂模式(simple factory)是类的创建模式,又叫静态工厂方法(static factory method)模式。
简单工厂模式根据传入的参数决定创建哪一类实例。
public class peopleFactory{
public static people create(int type){
if(type==1){
return new chinese();
}else if(type==2){
return new american();
}
}
}
简单工厂模式的优缺点分析:
优点:它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构的优化。
缺点:简单工厂模式违背了“开放封闭原则”,就是违背了“系统对扩展开放,对修改关闭”的原则,因为当我新增加一个产品的时候必须修改工厂类,相应的工厂类就需要重新编译一遍。
2、工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。
public class bmwFactory implements Icarfactory{
public Icar createCar(){
return new bwm();
}
}
public class buickFactory implements Icarfactory{
public Icar createCar(){
return new buick();
}
}
3、抽象工厂
提供一个创建一系列相关或相互依赖对象的接口或抽象类,而无需指定它们具体的类。
protected Human createHuman(HumanEnum humanEnum) {
Human human = null;
//如果传递进来不是一个Enum中具体的一个Element的话,则不处理
if (!humanEnum.getValue().equals("")) {
try {
human = (Human)Class. forName(humanEnum.getValue()).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
return human;
}
public class MaleHumanFactory extends AbstractHumanFactory {
//创建一个男性黑种人
public Human createBlackHuman() {
turn super.createHuman(HumanEnum. BlackMaleHuman);
}
//创建一个男性白种人
public Human createWhiteHuman() {
return super.createHuman(HumanEnum. WhiteMaleHuman);
}
//创建一个男性黄种人
public Human createYellowHuman() {
return super.createHuman(HumanEnum. YelloMaleHuman);
}
}
main:
//第一条生产线,男性生产线
HumanFactory maleHumanFactory = new MaleHumanFactory();
//第二条生产线,女性生产线
HumanFactory femaleHumanFactory = new FemaleHumanFactory();
//生产线建立完毕,开始生产人了:
Human maleYellowHuman = maleHumanFactory.createYellowHuman();
Human femaleYellowHuman = femaleHumanFactory.createYellowHuman();
maleYellowHuman.cry();
maleYellowHuman.laugh();
femaleYellowHuman.sex();
- 大小: 14.1 KB
分享到:
相关推荐
JAVA-设计模式-创建型模式-工厂模式
java 创建型模式--工厂模式(Factory Pattern)示范代码demo,关于工厂模式可以查看我的博客 http://blog.csdn.net/u012930316/article/details/54599580
创建型设计模式----抽象工厂模式
创建型设计模式---工厂设计模式实现
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
├─day01-总览设计模式-02-创建型模式-为什么使用创建型模式.mp4 ├─day01-总览设计模式-03-创建型模式-单例的演示.mp4 ├─day01-总览设计模式-04-创建型模式-单例的应用场景.mp4 ├─day01-总览设计模式-05-创建...
简单工厂模式(不属于23种设计模式范围之内) 用意:一个工厂生产所有产品
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
C++设计模式-创建型模式-简单工厂模式源码
软件设计模式-2021秋-实验1-创建型模式实验报告附源码和类图.zip 工厂方法模式、建造者模式、抽象工厂模式、单例模式
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
c++设计模式-创建型-抽象工厂方法-最简单源码-qt工程
Factory Method 工厂方法模式(创建型模式).wmv
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...
创建模式的案例,有工厂模式,单态模式 里面有详细的案例和设计思路 有利于初学者学习
介绍了三种创建型设计模式:简单工厂模式、工厂方法模式、抽象工厂模式;
设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...
①使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形均具有绘制方法daw()和擦除方法 erase(),要求在绘制不支持的几何...
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)