java-设计模式-创建模式-工厂模式factory
一、概述
工厂模式可以分为三类:
1)简单工厂模式(Simple Factory)
2)工厂方法模式(Factory Method)
3)抽象工厂模式(Abstract Factory)
二、实例
1)简单工厂模式(Simple Factory)
<span style="font-size:18px;">public class Factory{
public static Sample creator(int which){
//getClass 产生Sample 一般可使用动态类装载装入类。
if (which==1)
return new SampleA();
else if (which==2)
return new SampleB();
}
}</span>
2)工厂方法模式(Factory Method)
/**
* 创建工厂的接口
*
*/
interface FactoryBMW {
function createBMW();
}
/**
*
* 创建BWM320车
*/
class FactoryBWM320 implements FactoryBMW {
function createBMW($type){
return new BWM320();
}
}
/**
*
* 创建BWM523车
*/
class FactoryBWM523 implements FactoryBMW {
function createBMW($type){
return new BMW523();
}
}
class Customer {
private $BMW;
function getBMW($type){
switch ($type) {
case 320:
$BWM320 = new FactoryBWM320();
return $BWM320->createBMW();
case 523:
$BWM523 = new FactoryBWM523();
return $BWM320->createBMW();
//....
}
}
}
3)抽象工厂模式(Abstract Factory)
public abstract class Factory{
public abstract Sample creator();
public abstract Sample2 creator(String name);
}
public class SimpleFactory extends Factory{
public Sample creator(){
.........
return new SampleA
}
public Sample2 creator(String name){
.........
return new Sample2A
}
}
public class BombFactory extends Factory{
public Sample creator(){
......
return new SampleB
}
public Sample2 creator(String name){
......
return new Sample2B
}
}