目的
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
Sample:
Interface IComputerFactory{
createMouse();
createOS();
};
ClassMouse{};
ClassOS{};
//微软鼠标
Class MicrosoftMouse extends Mouse{};
//苹果鼠标
ClassAppleMouse extends Mouse{};
//微软系统
Class MicrosoftOS extends OS{};
//苹果系统
Class AppleOS extends OS{};
ClassMicrosoftFactory implements IComputerFactory{
Mouse createMouse(){
Return new MicrosoftMouse();//创建相应的鼠标品牌
};
OS createOS();
};
ClassAppleFactory implementsI IComputerFactory{
Mouse createMouse(){
Return new AppleMouse();//创建相应的鼠标品牌
};
OS createOS();
};
Classclient{
//具体工厂的抽象接口作为参数传入
createComputer(ComputerFactory factory){
//动态绑定到具体工厂,具体工厂生产相应的鼠标品牌
Mouse mouse = factory.createMouse();
OS os = factory.createOS();
}
};