美文网首页程序员
JAVA基础23种设计模式----简单工厂模式--MonkeyK

JAVA基础23种设计模式----简单工厂模式--MonkeyK

作者: 爱思考的小百科 | 来源:发表于2018-12-16 23:01 被阅读0次

    JAVA基础23种设计模式----简单工厂模式--MonkeyKing

    简单工厂模式属于类的创建模型模式,又叫静态工厂模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类

    • 角色
      1. 工厂(creator)
      2. 抽象(product)
      3. 具体产品(concrete Product)
    • 工厂类
      • 简单工厂模式的核心,它负责实现所有创建实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象
    • 抽象
      • 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的接口
    • 具体产品
      • 简单工厂模式所创建的具体实例对象
    具体实现

    水果工厂

    package simplefactory;
    
    public class FruitFactory {
    //  public static Fruit getApple() {
    //      return new Apple();
    //  }
    //  public static Fruit getBanana() {
    //      return new Banana();
    //  }
    
        public static Fruit getFruit(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
            if(type != null) {
                Class clazz = Class.forName(type);
                return (Fruit) clazz.newInstance();
            }else {
                return null;
            }
        }
    }
    
    }
    

    抽象水果接口

    package simplefactory;
    
    public interface Fruit {
       void get();
    }
    
    

    具体水果

    package simplefactory;
    
    public class Banana implements Fruit {
       public void get() {
           System.out.println("get banana");
       }
    }
    
    
    package simplefactory;
    
    public class Apple implements Fruit {
       public void get() {
           System.out.println("get apple");
       }
    }
    
    

    实现

    package simplefactory;
    
    public class MainClass {
    
       public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
    //      Fruit apple = new Apple();
    //      Fruit banana = new Banana();
    //      
    //      apple.get();
    //      banana.get();
           
    //      
    //      Fruit apple = FruitFactory.getApple();
    //      Fruit banana = FruitFactory.getBanana();
           
           Fruit apple = FruitFactory.getFruit("Apple");
       }
    
    }
    
    

    相关文章

      网友评论

        本文标题:JAVA基础23种设计模式----简单工厂模式--MonkeyK

        本文链接:https://www.haomeiwen.com/subject/oxsfkqtx.html