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

  • 相关阅读:
    解决:TypeError: object() takes no parameters
    刷题(三)
    刷题(二)
    web自动化流程总结
    不能在Python Console中运行pytest
    关于pytest的一些问题
    UML设计,可以设计程序的用例图、类图、活动图等_SurfaceView
    android系统下消息推送机制
    Android中的动画,选择器,样式和主题的使用
    内存监测工具 DDMS --> Heap
  • 原文地址:https://www.cnblogs.com/longhaolove/p/7841204.html
Copyright © 2011-2022 走看看