• 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
  • 相关阅读:
    网易2019校招C++研发工程师笔试编程题
    牛客网 数串
    ps aux 状态介绍
    阿里在线测评解析
    Ubuntu 18.04安装 Sublime
    file '/grub/i386-pc/normal.mod' not found.解决方案
    解决Windows10与Ubuntu系统时间不一致问题
    进程与线程的区别
    大端模式和小端模式
    2016湖南省赛----G
  • 原文地址:https://www.cnblogs.com/longhaolove/p/7844537.html
Copyright © 2020-2023  润新知