zoukankan      html  css  js  c++  java
  • 简单工厂模式

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

    创建一个水果接口:

    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();
        }
    }

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

  • 相关阅读:
    食谱
    食谱
    食谱
    无题
    Appium+python 自动发送邮件(2)(转)
    Appium+python 自动发送邮件(1)(转)
    Appium+python HTML测试报告(2)——一份报告模板(转)
    Appium+python HTML测试报告(1)(转)
    Appium+python的单元测试框架unittest(4)——断言(转)
    Appium+python的单元测试框架unittest(3)——discover(转)
  • 原文地址:https://www.cnblogs.com/51life/p/9605341.html
Copyright © 2011-2022 走看看