工厂方法模式

设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

 1 package designPattern;
 2 
 3 /**
 4  * 工厂方法模式
 5  * @author Administrator
 6  */
 7 public class A4_FactoryMethodTest {
 8 
 9     /**
10      * 定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类
11      * 适用于:
12      *1.当一个类不知道它所必须创建的对象的类的时候。
13       2.当一个类希望由它的子类来指定它所创建的对象的时候。
14       3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
15      */    
16     public static void main(String[] args) {
17         IWorkFactory studWorkFactory=new StudentWorkFactory();
18         studWorkFactory.getWork().doWork();
19         IWorkFactory teachWorkFactory=new TeacherWorkFactory();
20         teachWorkFactory.getWork().doWork();
21     }
22 }
23 //Product 定义工厂方法所创建的对象的接口
24 interface Work
25 {
26     void doWork();
27 }
28 //ConcreteProduct 实现Product接口
29 class StudentWork implements Work
30 {
31     public void doWork(){
32         System.out.println("学生做作业...");
33     }
34 }
35 class TeacherWork implements Work
36 {
37     public void doWork(){
38         System.out.println("老师批改作业...");
39     }
40 }
41 //Creator 声明工厂方法,该方法返回一个Product类型的对象.creator也可以定义一个工厂方法的缺省实现,
42 //它返回一个ConcreteProduct对象,可以调用工厂方法以创建一个Product对象
43 interface IWorkFactory
44 {
45     Work getWork();
46 }
47 //ConcreteCreator 重定义工厂方法以返回一个ConcreteProduct对象
48 class StudentWorkFactory implements IWorkFactory
49 {
50     public Work getWork() {        
51         return new StudentWork();
52     }    
53 }
54 class TeacherWorkFactory implements IWorkFactory
55 {
56     public Work getWork() {        
57         return new TeacherWork();
58     }    
59 }

 

环境:JDK1.6,MAVEN,tomcat,eclipse

源码地址:https://files.cnblogs.com/files/xiluhua/designPattern.rar

欢迎亲们评论指教。

posted @ 2015-04-10 09:49  xiluhua  阅读(163)  评论(0编辑  收藏  举报