工厂模式分好几种,我也不知道现在要说的是哪种,先把我写看到的、并理解的部分写出来再说,而后再修改。这也是软件开发中的迭代方式。“工厂”是用来创建“产品”接口对象的,工厂也设计成接口方式。然后分别实现这两个接口,利用工厂的实现来产生具体的产品对象。
java例子:
//Cycle接口,含有三个未实现的方法。
interface Cycle
{
void ride();
void wheel();
void turn();
}
//factory接口,有getCycle方法,返回Cycle的实例。
interface CycleFactory
{
Cycle getCycle();
}
class Unicycle implements Cycle
{
public void ride(){}
public void wheel(){}
public void turn(){}
}
class Bicycle implements Cycle
{
public void ride(){}
public void wheel(){}
public void turn(){}
}
class Tricycle implements Cycle
{
public void ride(){}
public void wheel(){}
public void turn(){}
}
上面三个类,Unicycle、Bicycle和Tricycle分别实现了Cycle接口。再分别实现三个工厂对应这三个Cycle实现:
class UnicyleFactory implements CycleFactory
{
Cycle getCycle(){ return new Unicycle();}
}
class BicyleFactory implements CycleFactory
{
Cycle getCycle(){ return new Bicycle();}
}
class TricyleFactory implements CycleFactory
{
Cycle getCycle(){ return new Tricycle();}
}
UnicycleFacotry、BicycleFactory和TricycleFactory分别实现了CycleFactory.在类public class Cycles中:
private static cycle BuildCycle(CycleFactory cf)
{
return cf.getCycle();
}
public static void main(String[] args)
{
BuidCycle(new UnicycleFactory());
BuildCycle(new BicycleFactory());
BuildCycle(new TricycleFactory());
}
利用工厂模式将实现和接口分离是这一模式最大的优点。