zoukankan      html  css  js  c++  java
  • 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各种产品的方法就可以避免这个问题。

  • 相关阅读:
    zoj1028-Flip and Shift
    OSI七层模型基础知识及各层常见应用
    隐藏AutoCompleteTextView下拉框的滚动条
    VC++笔记七
    [置顶] 无名管道的C++封装
    张佩的Dump服务
    Oracle Autonomous Transactions(自治事务)
    Computational Geometry Template
    普通人和牛人之间的差距之举一反三能力
    关于选择
  • 原文地址:https://www.cnblogs.com/longhaolove/p/7841204.html
Copyright © 2011-2022 走看看