美文网首页
2、2种工厂模式

2、2种工厂模式

作者: lois想当大佬 | 来源:发表于2019-12-16 11:39 被阅读0次

    定义:建立创建对象的工厂
    用途:创建对象

    一、工厂模式一
    思想:
    1、工厂接口类
    2、工厂实现类
    3、产品接口类
    4、产品实现类


    1、工厂接口类

        public interface Factory
        {
            Car CreateCar();
        }
    



    2、工厂实现类

      public class SportFactory implements IFactory
        {
            public Car CreateCar()
            {
                return new SportCar();
            }
        }
    
        public class JeepFactory implements IFactory
        {
            public Car CreateCar()
            {
                return new JeepCar();
            }
        }
    



    3、产品接口类

    public interface Car
        {
            void GetCar();
        }
    



    4、产品实现类

    public class SportCar implements Car
        {
            public void GetCar()
            {
                System.out.println("场务把跑车交给范·迪塞尔");
            }
        }
    
        public class JeepCar implements Car
        {
            public void GetCar()
            {
                System.out.println("场务把越野车交给范·迪塞尔");
            }
        }
    



    5、客户端

    public class client {
    
        public static void main(String[] args) {
                Factory factory = new SportFactory();
                Car car = factory.CreateCar();
                car.GetCar(); // 场务把跑车交给范·迪塞尔
        }
    }
    

    二、工厂模式二
    Spring 中的 IoC 的实现原理,就是工厂模式加反射机制
    思想:
    1、工厂类
    3、产品接口类
    4、产品实现类

    // 产品接口类
    interface Fruit {
    
         public abstract void eat();
         
    }
    
    // 产品实现类
    class Apple implements Fruit {
    
        public void eat(){
            System.out.println("Apple");
        }
        
    }
    // 产品实现类
    class Orange implements Fruit {
        public void eat(){
            System.out.println("Orange");
        }
    }
    
    // 工厂类
    class Factory {
    
        public static Fruit getInstance(String className) {
            Fruit f = null;
            try {
                f = (Fruit) Class.forName(className).newInstance();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return f;
        }
        
    }
    
    // 客户端
    class Client {
    
        public static void main(String[] args) {
            Fruit f = Factory.getInstance("io.github.dunwu.spring.Apple");
            if(f != null){
                f.eat();
            }
        }
        
    }
    



    上一篇:静态代理模式

    相关文章

      网友评论

          本文标题:2、2种工厂模式

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