声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流
- 博主是参考这个视频进行学习总结的:
- 设计模式学习视频(点击我)
- 提取码 : 29oc
(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