23种设计模式之普通工厂模式代码实例

创建一个通用的接口,这个接口是工厂要生产的产品类,

public interface Message {
    public void send();
}

然后创建两个这个接口的实现类,代表具体的产品

public class IphoneMessage implements Message{
    public void send() {
        System.out.println("Iphone message!");
    }
}
public class SamsungMessage implements Message{
    public void send() {
        System.out.println("Samsung message!");
    }
}

然后 创建工厂类,根据传入的类型生产不同的产品,

public class MessageFactory {
    public Message produce(String type){
        if(type.equals("Iphone")){
            return new IphoneMessage();
        }else if(type.equals("Samsung")){
            return  new SamsungMessage();
        }else{
            System.out.println("please chenk your input");
            return null;
        }

    }
}

最好创建测试类,利用工厂类传入类型生产不同的产品:

public class TestFactory {
    public static void main(String[] args) {
        MessageFactory messageFactory = new MessageFactory();
        Message message1 = messageFactory.produce("Iphone");
        Message message2 = messageFactory.produce("Samsung");
        message1.send();
        message2.send();
    }
}

运行,得到结果:

Iphone message!
Samsung message!

Process finished with exit code 0

如果考虑到传入的字符串可能会出错导致产生不了正确的产品,也可以把产品生成方法改成produce各种产品的方法就可以避免这个问题。

 

posted @ 2017-11-15 21:56  M理论  阅读(296)  评论(0编辑  收藏  举报