• 抽象工厂模式


    当我们需要重复的创建对象的时候,通常会使用工厂模式来创建对象,这样来减轻工作量。但工厂模式的局限性在于只能够针对相同类型的产品。比如某工厂有一条生产果冻的生产线,这条生产线可以生产不同口味的果冻,这样可以很方便使用工厂模式来生成不同口味的果冻。但是如果新加入了一条生成汽水的生产线,那么整个系统就需要重新添加响应的汽水的类。这个时候就不能够很好的体现重用性了。如果我们将果冻和汽水的生产线都抽象出一个共同的父类,那么我们就可以通过使用里氏替换原则使用同样的方式来生成不同类型的产品了。如,工人加工->包装。替换了原来和具体的对象耦合的那部分内容,提高了系统的扩展性和可维护性。

    接下来我们通过一个实例来说明

    image

    代码如下:

    public class test
    {
        public static void main(String args[])
        {
            {
                factory f=new fruitA();
                f.show();
                f=new drinkA();
                f.show();
            }
        }
    }
    class factory
    {
        void show()
        {
            System.out.println("factory");
        }
    }
    class fruit extends factory
    {
        void show()
        {
            System.out.println("fruit");
        }
    }
    class drink extends factory
    {
        void show()
        {
            System.out.println("drink");
        }
    }
    class fruitA extends fruit
    {
        void show()
        {
            System.out.println("fruitA");
        }
    }
    class fruitB extends fruit
    {
        void show()
        {
            System.out.println("fruitB");
        }
    }
    class drinkA extends drink
    {
        void show()
        {
            System.out.println("drinkA");
        }
    }
    class drinkB extends drink
    {
        void show()
        {
            System.out.println("drinkB");
        }
    }

    结果如下

    image

  • 相关阅读:
    k8s keepalived haproxy 集群成功
    .Net Core 用 EntityFramework 读取 Oracle
    Fedora CoreOS 安装 非LInux专业国内第一手
    Docker 下的 Keepalived + Haproxy 高可用实现 1 实现结果演示
    第二篇 windows container 微软的原生容器
    第一篇 Windows docker 概述
    测试openLiveWrite写博客
    比特币勒索病毒肆虐,腾讯云安全专家给你支招
    WannaCry 勒索病毒用户处置指南
    pytorch 学习笔记之编写 C 扩展,又涨姿势了
  • 原文地址:https://www.cnblogs.com/ives/p/Abstract_Factory.html
Copyright © 2020-2023  润新知