• 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各种产品的方法就可以避免这个问题。

  • 相关阅读:
    引用类型构造器
    正则指引量词
    Ajax的XMLHttpRequest对象
    正则指引字符组
    方法可变数量的参数
    不使用XMLHttpRequest实现异步加载:Iframe和script
    可选参数、命名参数
    常量和字段
    正则指引括号
    值类型实例构造器
  • 原文地址:https://www.cnblogs.com/longhaolove/p/7841204.html
Copyright © 2020-2023  润新知