故事中的设计模式-简单工厂

简单工厂设计模式,又叫静态工厂方法模式,工厂设计模式就是根据不同的参数生成不同的对象。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
interface Human{
public void talk();
public void walk();
}

public class Boy implements Human{
@Override
public void talk(){
System.out.println("Boy is talking...");
}

@Override
public void walk(){
System.out.println("Boy is walking...");
}
}

public class Girl implements Human{
@Override
public void talk(){
System.out.println("Boy is talking...");
}

@Override
public void walk(){
System.out.println("Boy is walking...");
}
}

public class HumanFactory{
public static Human createHuman(String name){
Human human = null;
if("boy".equals(name)){
human = new Boy();
}else if("girl".equals(name)){
human = new Girl();
}
return human;
}
//或者使用以下代码
public static Human createBoy(){
return new Boy();
}

public static Human createGirl(){
return new Girl();
}
}

适用场景
    适用于创建较少对象的情况,创建对象较少,工厂不太复杂。
    适用用于创建对象构造方法需要参数较少的情况。
应用实例
    Java 中的日历类
    java.util.Calendar getInstance()
    java.util.Calendar getInstance(Local aLocal)
    java.util.Calendar getInstance(TimeZone zone)

优点、缺点

  • 优点
    实现了调用者与创建对象的解耦,符合了高内聚、低耦合的设计标准
  • 缺点
    如果创建的类比较多,则工厂中充斥着大量的判断或者静态方法,不利于后期维护违反了OCP原则,如果新增对象则需要修改工厂类.
坚持原创技术分享,您的支持将鼓励我的继续创作