抽象工厂模式

抽象工厂模式其实是工厂方法模式的叠加,用来实例化一组产品族。

Product接口

package com.life.factory;

public interface Computer {
     void start();
}
package com.life.factory;

public interface Phone {
    void use();
}

Product实现类

package com.life.factory;

public class MacComputer implements Computer {
    public MacComputer() {
        System.out.println("MacComputer实例化了");
    }

    @Override
    public void start() {
        System.out.println("欢迎使用苹果电脑");
    }
}
package com.life.factory;

public class MacPhone implements Phone {
    public MacPhone() {
        System.out.println("苹果手机已经实例化");
    }

    @Override
    public void use() {
        System.out.println("欢迎购买苹果手机");
    }
}

Factory接口

package com.life.factory;

public interface ElectronicsFactory {
    Computer createComputer();
    Phone createPhone();
}

Factory实现类

package com.life.factory;

public class MacElectronicsFactory implements ElectronicsFactory {
    @Override
    public Computer createComputer() {
        MacComputer macComputer = new MacComputer();
        return macComputer;
    }

    @Override
    public Phone createPhone() {
        MacPhone macPhone = new MacPhone();
        return macPhone;
    }
}

Client类

package com.life.factory;

import com.life.Util;

public class Client {
    public static void main(String[] args) {
        String type = "macElectronicsFactory";
        ElectronicsFactory factory = (ElectronicsFactory) Util.getBean(type);
        Computer computer = factory.createComputer();
        computer.start();
        Phone phone = factory.createPhone();
        phone.use();
    }
}

 

posted on 2022-03-21 20:58  金满仓  阅读(36)  评论(0)    收藏  举报

导航