工厂方法模式
设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
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
欢迎亲们评论指教。