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

来源:互联网 发布:青云志数据库 编辑:程序博客网 时间:2024/06/03 18:02

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

  • 博主是参考这个视频进行学习总结的:
    • 设计模式学习视频(点击我)
    • 提取码 : ivtk

(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.添加一个生产你要的水果工厂        //嘿嘿,到这边知道这个模式的好处了吧,是不是不动原先的代码。通过添加类就实现功能呢        //(耦合度是不是降低了呢?)    }}

欢迎留言交流!!


  • 博主是参考这个视频进行学习总结的:
    • 设计模式学习视频(点击我)
    • 提取码 : ivtk
0 0
原创粉丝点击