美文网首页
设计模式之工厂方法模式

设计模式之工厂方法模式

作者: tanoak | 来源:发表于2018-08-11 21:18 被阅读10次

    在上篇文章中我们探讨了简单工厂的好处,那么工厂方法模式比简单工厂有什么优势呢?

    • 抽象工厂对扩展开放,对修改也开放,违反了“开闭原则”,反之就是工厂方法模式的优势

      区别: 简单工厂模式的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

    public class Apple implements Fruit {
    
        @Override
        public void color() {
            System.out.println("this is Apple ,color Red");
        }
    }
    
    
    public class AppleCreator implements Creator {
    
        @Override
        public Fruit createFruit() {
            return new Apple() ;
        }
    }
    
    
    public class Pear implements Fruit {
        @Override
        public void color() {
            System.out.println("this is pear ,color yellow");
        }
    }
    
    
    public class PearCreator implements Creator {
    
        @Override
        public Fruit createFruit() {
            return new Pear() ;
        }
    }
    
    
    public interface Creator {
    
        /**
         *  创建 Fruit
         * @return Fruit
         */
        Fruit createFruit();
    }
    
    
    package com.tanoak.create.factory.method;
    
    public interface Fruit {
        /**
         * 水果颜色
         */
        void color();
    }
    
    package com.tanoak.create.factory.method;
    public class Main {
        public static void main(String[] args) {
            /*
            Creator buldCreator = new AppleCreator();
            Fruit fruit = buldCreator.createFruit();
            fruit.color();*/
    
            Creator creator = new PearCreator();
            Fruit fruit = creator.createFruit();
            fruit.color();
        }
    }
    
    

    简单理解成小明今天想吃苹果=>指定苹果产品=>通知水果工厂生产

    UML类图如下


    归根到底 工厂方法模式是因为简单工厂模式违反“开闭原则”而创立的,两个模式对比可以加深理解

    相关文章

      网友评论

          本文标题:设计模式之工厂方法模式

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