• 简单工厂模式


    咱们以水果为例介绍简单工厂模式

    创建一个水果接口:

    public interface Fruit {
        //对水果的描述
        void describe();
    }

    创建Apple类(具体产品类):

    public class Apple implements Fruit{
    
        public void describe() {
            System.out.println("I am Apple");
        }
    
    }

    创建Orange类(具体产品类):

    public class Orange implements Fruit{
    
        public void describe() {
            System.out.println("I am Orange");
        }
    
    }

    创建Banana类(具体产品类):

    public class Banana implements Fruit{
        public void describe() {
            System.out.println("I am Banana");
        }
    }

    现在水果都准备好了,再来一家水果店SimpleFruitFactory(简单工厂类):

    /**
     * @author chenyk
     * @date 2018年9月7日
     * 简单工厂类:水果厂
     */
    
    public class SimpleFruitFactory {
        public static Fruit createFruit(String fruitType){
            switch (fruitType) {
            case "apple":
                return new Apple();
            case "orange":
                return new Orange();
            case "banana":
                return new Banana();
            default:
                return null;
            }
        }
    }

    好了,假如现在有顾客说要买橘子,怎么办呢?看下面代码:

    public class ClientDemo {
        public static void main(String[] args) {
            Fruit fruit = SimpleFruitFactory.createFruit("orange");
            fruit.describe();
        }
    }

    这就是简单工厂模式,它的缺点是扩展性比较差,比如说,当新增一种水果时,需要新创建一个水果的具体产品类,同时要修改工厂类。

  • 相关阅读:
    微信小程序非域名测试环境,手机预览不正常,模拟器和真机调试正常解决办法
    vue 建项目及初步开发遇到的问题
    开发&测试
    架构&项目
    运维
    读书&源码
    ArrayList
    jdk集合知识点整理
    jdk集合关系图
    jvm知识点整理
  • 原文地址:https://www.cnblogs.com/51life/p/9605341.html
Copyright © 2020-2023  润新知