二、工厂模式

来源:互联网 发布:c语言windows窗口程序 编辑:程序博客网 时间:2024/06/01 08:11

工厂模式说白了就是用来创建对象的.只不过不同的工厂模式创建的对象的方法和数量不太一样

  • 三种分类
    • 简单工厂模式
    • 工厂模式
    • 抽象工厂模式

三种分类

简单工厂模式

简单工厂模式也叫静态工厂模式.其实本质就是实现一些接口.然后用工厂类来创建对象

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{}
0 0
原创粉丝点击