作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬
学习必须往深处挖,挖的越深,基础越扎实!
工厂方法模式
工厂模式用于实现逻辑的封装,并通过公共的忌口提供对象的实例化服务,在添加新类时只需要做少量的修改。
1. 静态工厂模式(简单工厂模式)
静态工厂属于创建者模式,静态工厂模式的实现需要三个角色
- 简单工厂:负责创建具体产品产品,工厂类的方法可以被外界直接调用
- 抽象产品:在 Java 中,抽象产品是由抽象类或者接口担任的,用以让具体产品继承或实现
- 具体产品:在 Java 中,具体产品是工厂类创建的主要对象。
静态工厂的通用写法
工厂角色
public class CandyFactory {
public enum CandyKind{
FRUITCANDY("fruitCandy"),COLACANDY("COLACANDY");
private String kind;
CandyKind(String kind){
this.kind = kind;
}
public String getCandyKind() {
return this.kind;
}
}
public Candy createCandy(String kind) {
if(kind.equals(CandyKind.COLACANDY.getCandyKind()))
return new ColaCandy();
if(kind.equals(CandyKind.FRUITCANDY.getCandyKind())) {
return new FruitCandy();
}
return null;
}
}
抽象产品
public interface Candy {
public void testCandy();
}
具体产品
- FruitCandy
public class FruitCandy implements Candy {
@Override
public void testCandy() {
System.out.println("Test FruitCandy");
}
}
- ColaCandy
package com.stu.edu.part2.Factorypattern.demo2;
public class ColaCandy implements Candy {
@Override
public void testCandy() {
System.out.println("Test ColaCandy");
}
}
上述写法符合了迪米特法