(2)设计模式之工厂方法模式(创建型模式)

声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流


(1)设计模式之简单工厂模式(创建型模式)存在着一个缺点不符合设计模式的封闭原则:当需要创建的对象多了的话,需要不断的去动内部的代码。于是工厂方法模式就诞生了。先上类图
这里写图片描述

  • Fruit.java
public interface Fruit {
    public void collect();
}
  • Apple.java
public class Apple implements Fruit{
    @Override
    public void collect() {
        System.out.println("采集苹果..");
    }

}
  • Banana.java
public class Banana implements Fruit {

    @Override
    public void collect() {
        System.out.println("采集香蕉..");
    }

}
  • FruitFactory.java
package com.dyx.design.factorymethod;

public interface FruitFactory {
    public Fruit productionFruit();
}
  • AppleFactory.java
package com.dyx.design.factorymethod;
/**
 * 描述:水果工厂
 */
public class AppleFactory implements FruitFactory {
    @Override
    public Fruit productionFruit() {
        return new Apple();
    }

}
  • BananaFactory.java
package com.dyx.design.factorymethod;

public class BananaFactory implements FruitFactory {
    @Override
    public Fruit productionFruit() {
        return new Banana();
    }

}
  • Main.java
package com.dyx.design.factorymethod;
/**
 * 描述: 工厂方法模式
 *      工厂方法退化后可以演变成简单工厂模式
 */
public class Main {

    public static void main(String[] args) {
        AppleFactory aFactory = new AppleFactory();
        Fruit aFruit = aFactory.productionFruit();
        aFruit.collect();

        BananaFactory bFactory = new BananaFactory();
        Fruit bFruit = bFactory.productionFruit();
        bFruit.collect();
        //后期如果要添加新水果类的话,按如下步骤来:
        //1.添加一个实现Fruit的接口类
        //2.添加一个生产你要的水果工厂
        //嘿嘿,到这边知道这个模式的好处了吧,是不是不动原先的代码。通过添加类就实现功能呢
        //(耦合度是不是降低了呢?)
    }

}

欢迎留言交流!!


猜你喜欢

转载自blog.csdn.net/JavaMrZhang/article/details/70674501