工厂模式说白了就是用来创建对象的.只不过不同的工厂模式创建的对象的方法和数量不太一样
三种分类
简单工厂模式
简单工厂模式也叫静态工厂模式.其实本质就是实现一些接口.然后用工厂类来创建对象
public interface IProduct{
}
public class ProductA implements IProduct{
}
public class ProductB implements IProduct{
}
public class ProductFactory{
public static IProduct getProduct(ProductType type){
if(type==ProductType.ProductType_A){
return new ProductA();
}else if(type==ProductType.ProductType_B){
return new ProductB();
}
}
enum ProductType
{
ProductType_A,
ProductType_B
}
}
工厂模式
一个工厂生成一种对象
public interface IProduct{}
public class ProductA implements IProduct{
}
public class ProductB implements IProduct{
}
public interface IProductFactory{
IProduct produce();
}
public class ProductAFactory{
@Override
IProduct produce(){
return new ProductA();
};
}
public class ProductBFactory{
@Override
IProduct produce(){
return new ProductB();
};
}
抽象工厂模式
主要用于生成一类对象.例子中用来生成mac或者window的border和button
public class AbstractFactory {
public IButton CreateButton();
public function CreateBorder();
}
public class MacFactory extends AbstractFactory{
public IButton createMacButton(){
return new MacButton();
}
public IBorder createWinBorder(){
return new MacBorder();
}
}
public class WinFactory extends AbstractFactory{
public IButton createWinButton(){
return new WindowButton();
}
public IBorder createWinBorder(){
return new WindowBorder();
}
}
public interface IButton{}
public interface IBorder{}
public class WindowButton implements IButton{}
public class MacButton implements IButton{}
public class MacBorder implements IBorder{}
public class WindowBorder implements IBorder{}