美文网首页
工厂方法模式

工厂方法模式

作者: MrL槑槑 | 来源:发表于2018-06-26 23:05 被阅读0次

    要点

    • 为了避免简单工厂模式的缺点,不完全满足OCP(开闭原则)
    • 工厂方法模式和简单工厂模式最大的不同在于,简单工厂模式只有一个(对于一个项目或者一个独立模块而言)工厂类,而工厂方法模式有一组实现了相同工厂的实现类
    public interface Car {
    
        void run();
    
    }
    
    public class Audi implements Car {
        @Override
        public void run() {
            System.out.println("奥迪在跑");
        }
    }
    
    public class Bwd implements Car {
        @Override
        public void run() {
            System.out.println("比亚迪在跑");
        }
    }
    
    /**
     * 工厂类接口
     */
    public interface CarFactory {
    
        Car createCar();
    
    }
    
    public class AudiFactory implements CarFactory {
        @Override
        public Car createCar() {
            return new Audi();
        }
    }
    
    public class BwdFactory implements CarFactory {
        @Override
        public Car createCar() {
            return new Bwd();
        }
    }
    
    public class Client1 {
    
        public static void main(String[] args) {
            Car bwd = new BwdFactory().createCar();
            Car audi = new AudiFactory().createCar();
    
            bwd.run();
            audi.run();
        }
    }
    
    工厂模式UML类图



    符合OCP原则,但是增加了代码量,每增加一个车的类型,都需要增加对应的工厂类,实际开发不推荐



    简单工厂模式&工厂方法模式

    相关文章

      网友评论

          本文标题:工厂方法模式

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