1. 简单工厂模式
publci class Sample{
....
}
public class A extends Sample{
....
}
public class B extends Sample{
......
}
工厂类处于决定实例化那个产品类的中心位置
public class Factory{
//静态工厂方法,无必要再去实例化这个工厂类,增加没有必要的代码
public static Sample create(int which){
if(which==1)
return new A();
if(which==2)
return new B();
}
}
使用简单工厂初始化一个类
Sample newSample=Factory.create(1);
2. 工厂方法模式
植物接口及两个实现类
public interface Plant{}
public class PlantA implements Plant{
}
public class PlantB implements Plant{
}
水果接口及两个实现类
public interface Fruit{}
public class FruitA implements Fruit{
}
public class FruitB implements Fruit{
}
抽象工厂
public interface AbstractFactory{
public Plant createPlant();
public Fruit creatFruit();
}
工厂类A
public Class FactoryA implements AbstractFactory{
public Plant createPlant(){
return new PlantA();
}
public Fruit creatFruit(){
return new FruitA();
}
}
工厂类B
public Class FactoryB implements AbstractFactory{
public Plant createPlant(){
return new PlantB();
}
public Fruit creatFruit(){
return new FruitB();
}
}
工厂方法模式与简单工厂模式再结构上的不同不是很明显。工厂方法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。
工厂方法模式之所以有一个别名叫多态性工厂模式是因为具体工厂类都有共同的接口,或者有共同的抽象父类。
当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了"开放-封闭"原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。
工厂方法模式退化后可以演变成简单工厂模式。
新增加一个类PlantC 和 FruitC
public class PlantC implements Plant{
}
public class FruitC implements Fruit{
}
这时只需要增加一个工厂类C
public Class FactoryC implements AbstractFactory{
public Plant createPlant(){
return new PlantC();
}
public Fruit creatFruit(){
return new FruitC();
}
}
分享到:
相关推荐
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
前言 在《设计模式》一书中...接下来会通过例子对比简单工厂模式和工厂方法模式。 工厂意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 别名 虚构造器(V
本文章通俗易懂的对工厂模式进行了讲解,相信您看完这篇文章会对工厂模式有更深入的了解
java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式
工厂方法模式和抽象工厂模式的区别,对工厂方法模式和抽象工厂模式做了简单的比较
简单工厂模式和工厂方法模式的区别 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了于具体产品的依赖。而工厂方法模式定义了一个用于...
运用两个典型案例,实现软件设计模式的简单工厂模式,从该案例中,可以体会简单工厂模式的特点
Java简单工厂模式和传统模式实现对比,通过简单实例比对两种方式差异,体现传统模式的弊端及工厂模式优势。利于初学者后续接触spring
简单工厂模式和工厂方法模式的Demo程序,在VC10下写的,对比两者的Demo程序,你可以慢慢领会两种模式的优缺点。
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
反射例子代码、简单工厂模式例子代码、工厂模式例子代码
从简单工厂,到工厂方法到抽象工厂,这几种都带有“工厂”的模式,总是容易叫人迷糊,我仔细研究了下,然后用简单的例子做类比,列出了自己的通俗理解和比较,大部分是自己的体会,感觉理的比较清楚,末尾提了下...
主要介绍了Ruby中使用设计模式中的简单工厂模式和工厂方法模式的示例,这两种模式经常被用于Ruby on Rails开发的结构设计中,需要的朋友可以参考下
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
工厂方法模式工厂方法模式工厂方法模式工厂方法模式工厂方法模式
4.简单工厂-工厂方法-抽象工厂 对比总结
c#工厂模式 简单工厂,抽象工厂,单件模式