• 设计模式——工厂模式(工厂方法)


      上一篇我们介绍了简单工厂模式,知道它在增添新产品的时候要在工厂类里修改判断逻辑代码,这样是不好的。所以工厂方法模式改进了它,到底是怎么样改进的呢?

      我们说了写的代码当有需求变更时,我们的原则是创建新的类,在新的地方写新需求,而不要动原来的代码。所以工厂方法模式它定义了抽象工厂(接口或抽象类),每个具体工厂类负责生产一种产品,当需求里有新产品要求加入时,我们只需要创建一个新的具体产品类就OK了。看代码:

    //抽象产品类:定义一类产品,接口或抽象类
    public interface Animal
    {
        public void run(); //接口只声明方法,不实现
    }
    //具体产品类1:Dog类实现Animal接口
    public class Dog implements Animal
    {
        public void run()
        {
             System.out.println("狗run!");
        }
    }
    //具体产品类2:Cat类实现Animal接口
    public class Cat implements Animal
    {
        public void run()
        {
             System.out.println("猫run!");
        }
    }
    //抽象工厂类:定义一种规范,具体实现由实现它的具体工厂类去实现
    public interface AbstractFactory
    {
        public Animal create();
    }
    //具体工厂类1:只生产dog,"狗厂"
    public dogFactory implements AbstractFactory
    {
        public Animal create()
        {
            return new Dog();
        }
    }
    //具体工厂类2:只生产cat,"猫厂"
    public catFactory implements AbstractFactory
    {
        public Animal create()
        {
            return new Cat();
        }
    }
    //主程序:要用到实例的类
    public class Main()
    {
        public static void main(String[] args)
        {
            AbstractFactory dogFactory = new dogFactory(); //创建“狗厂”
            Dog dog = (Dog)dogFactory .create(); //“狗厂”为我们生产狗
            catFactory = new catFactory(); //创建“猫厂”
            Cat cat = (Cat)catFactory.create(); //"猫厂"为我们生产猫   
        }
    }
  • 相关阅读:
    vscode 远程连接服务器
    linux通配符和正则表达式
    vscode常用快捷键
    个人博客
    百度搜索自动排除csdn
    Spring Boot配置文件中动态配置运行目录,jar包路径
    eclipse springMVC项目打包war
    微信h5支付报错 商家参数格式有误,请联系商家解决
    Object函数的内置方法 Object.entries
    Object函数的内置方法 Object.getOwnPropertySymbols
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4159461.html
Copyright © 2020-2023  润新知