1. 程式人生 > 實用技巧 >圖卷積基本總結。

圖卷積基本總結。

工廠模式簡單的說就是通過工廠來建立物件

簡單工廠模式

public interface Phone {
    void make();
}

public class MiPhone implements Phone {
    public MiPhone() {
        this.make();
    }
    @Override
    public void make() {
        // TODO Auto-generated method stub
        System.out.println("make xiaomi phone!");
    }
}

public class IPhone implements Phone {
    public IPhone() {
        this.make();
    }
    @Override
    public void make() {
        // TODO Auto-generated method stub
        System.out.println("make iphone!");
    }
}

public class PhoneFactory {
    public Phone makePhone(String phoneType) {
        
if(phoneType.equalsIgnoreCase("MiPhone")){ return new MiPhone(); } else if(phoneType.equalsIgnoreCase("iPhone")) { return new IPhone(); } return null; } }

工廠方法模式

和簡單工廠模式中工廠負責生產所有產品相比,工廠方法模式將生成具體產品的任務分發給具體的產品工廠

public interface AbstractFactory {
    Phone makePhone();
}

public class XiaoMiFactory implements AbstractFactory{
    @Override
    public Phone makePhone() {
        return new MiPhone();
    }
}

public class AppleFactory implements AbstractFactory {
    @Override
    public Phone makePhone() {
        return new IPhone();
    }
}

抽象工廠模式

public interface PC {
    void make();
}

public class MiPC implements PC {
    public MiPC() {
        this.make();
    }
    @Override
    public void make() {
        // TODO Auto-generated method stub
        System.out.println("make xiaomi PC!");
    }
}

public class MAC implements PC {
    public MAC() {
        this.make();
    }
    @Override
    public void make() {
        // TODO Auto-generated method stub
        System.out.println("make MAC!");
    }
}

public interface AbstractFactory {
    Phone makePhone();
    PC makePC();
}

public class XiaoMiFactory implements AbstractFactory{
    @Override
    public Phone makePhone() {
        return new MiPhone();
    }
    @Override
    public PC makePC() {
        return new MiPC();
    }
}

public class AppleFactory implements AbstractFactory {
    @Override
    public Phone makePhone() {
        return new IPhone();
    }
    @Override
    public PC makePC() {
        return new MAC();
    }
}