zoukankan      html  css  js  c++  java
  • 23种设计模式之抽象工厂模式代码实例

    普通工厂模式有一个问题,就是需要拓展程序时需要修改原来的代码,

    违反了程序的对拓展开放,对修改关闭的原则,为了解决这个问题就有了抽象工厂模式。

    需要增加新的功能的时候直接增加工厂类,这样就避免了修改原有的代码,实现了功能的拓展。

    先有产品的抽象类,再有工厂的抽象类,再有二者的实现类,具体见代码。

    产品的抽象类:

    public interface Message {
        public void send();
    }

    工厂的抽象类:

    public interface Factory {
        public Message produce();
    }

    产品的两个实现类:

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

    工厂的两个实现类:

    public class IphoneFactory implements Factory{
        public Message produce() {
            return new IphoneMessage();
        }
    }
    public class SamsungFactory implements Factory{
        public Message produce() {
            return new SamsungMessage();
        }
    }

    测试抽象工厂模式:

    public class TestFactory {
        public static void main(String[] args) {
            Factory factory = new IphoneFactory();
            Factory factory1 = new SamsungFactory();
            Message iphone = factory.produce();
            Message samsung = factory1.produce();
            iphone.send();
            samsung.send();
    
        }
    }

    得到结果:

    Iphone message!
    Samsung message!
    
    Process finished with exit code 0
  • 相关阅读:
    如何开始学习编程? 这 3 步很重要
    php正则表达式验证手机/固定电话/邮箱/身份证/银行卡自定义函数
    【经验分享】-PHP程序员的技能图谱
    PHP程序员的技能图谱
    PHP程序员要掌握的技能
    冒泡排序
    文件下载方法
    加密,解密方法
    获取真实IP
    二维数组根据某个字段排序
  • 原文地址:https://www.cnblogs.com/longhaolove/p/7844537.html
Copyright © 2011-2022 走看看