工厂方法设计模式

Posted learningkeeper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂方法设计模式相关的知识,希望对你有一定的参考价值。

定义一个用于创建对象的接口,让子类决定决定实例化哪个类,工厂方法模式使一个类的实例化延迟到其子类

适用性:

1、当一个类不知道他所必须创建的对象的类的时候

2、当一个类希望由它的子类来制定它所创建的对象的时候

3、当类创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

 1 public class TestFactoryMethod
 2 {
 3    public static void main(String[] args)
 4 {
 5     IWorkFactory i=new StudentWorkFacctory();
 6     i.getWork().doWork();
 7     
 8     IWorkFactory i1=new TeacherWorkFactory();
 9     i1.getWork().doWork();
10 }
11 }
12 
13 interface Work{
14     void doWork();
15 }
16 
17 interface IWorkFactory{
18     Work getWork();
19 }
20 class StudentWorkFacctory implements IWorkFactory
21 {
22 
23     @Override
24     public Work getWork()
25     {
26         return new StudentWork();
27     }
28     
29 }
30 class TeacherWorkFactory implements IWorkFactory
31 {
32 
33     @Override
34     public Work getWork()
35     {
36         return new TeacherWork();
37     }
38     
39 }
40 
41 class StudentWork implements Work
42 {
43 
44     @Override
45     public void doWork()
46     {
47         System.out.println("学生写作业");
48     }
49     
50 }
51 
52 class TeacherWork implements Work{
53 
54     @Override
55     public void doWork()
56     {
57       System.out.println("老师改作业");
58         
59     }
60     
61 }

 

以上是关于工厂方法设计模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之工厂方法和抽象工厂

设计模式-简单工厂工厂方法模式抽象工厂模式详解

设计模式-工厂方法模式(Go实现)

工厂方法模式

C++工厂模式(简单工厂工厂方法抽象工厂)

C++工厂模式(简单工厂工厂方法抽象工厂)