美文网首页
设计模式_JAVA实现_01_简单工厂模式

设计模式_JAVA实现_01_简单工厂模式

作者: 依米_2c5a | 来源:发表于2018-09-18 17:54 被阅读0次

    1个接口

    /**
    * 定义所有汽车类的公共接口
    */
    public interface Car {
        /**
        *   声明所有汽车类都必须具有的功能
        */
        String getName();
    }
    

    n个实现类

    /**
     * 定义汽车类接口的一个实现类 - 奥迪类
     */
    public class Audi implements Car {
        /**
         * 奥迪类必须实现接口声明的功能
         */
        public String getName() {
            return "Audi";
        }
    }
    
    /**
     * 定义汽车类接口的一个实现类 - 奔驰类
     */
    public class Benz implements Car {
        /**
         * 奔驰类必须实现接口声明的功能
         */
        public String getName() {
            return "Benz";
        }
    }
    
    /**
     * 定义汽车类接口的一个实现类 - 宝马类
     */
    public class Bmw implements Car {
        /**
         * 宝马类必须实现接口声明的功能
         */
        public String getName() {
            return "Bmw";
        }
    }
    

    1个工厂类

    /**
     * 定义一个汽车工厂类
     */
    public class CarFactory {
        /**
         * 在工厂类中定义一个 静态方法
         * 接受一些参数,生产对应的汽车
         */
        public static Car getCar(String name) {
            if ("Audi".equalsIgnoreCase(name)) {
                return new Audi();
            }
            if ("Benz".equalsIgnoreCase(name)) {
                return new Benz();
            }
            if ("Bmw".equalsIgnoreCase(name)) {
                return new Bmw();
            }
            return null;
        }
    }
    

    测试类

    public class Test1 {
        public static void main(String[] args) {
            // 用不同的参数调用汽车工厂的静态方法
            // 生产三个不同的汽车对象
            Car audi = CarFactory.getCar("Audi");
            Car benz = CarFactory.getCar("Benz");
            Car bmw = CarFactory.getCar("Bmw");
            // 查看三个汽车对象的信息
            System.out.println(audi.getName());
            System.out.println(benz.getName());
            System.out.println(bmw.getName());
        }
    }
    

    相关文章

      网友评论

          本文标题:设计模式_JAVA实现_01_简单工厂模式

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