Java设计模式----------简单工厂类+工厂方法(FactoryMethod)
2013-08-07 13:41
876 查看
什么是简单工厂类呢?
简单工厂类的最大优点是在工厂逻辑中包含了必要的逻辑判断,根据客户端选择的条件动态创建对象。
看看下面这段代码,你应该有所顿悟:
Person.java里面写一个抽象方法。
Child.java
Old.java
SimpleFactory.java
测试类:
什么事工厂方法呢?
我觉得很多书说的太专业了,有时让我们有点难懂,我觉得工厂方法就是通过一个方法创建对象。当然,这之间还要注意很多的逻辑关系。首先,让我们看一下几个代码片段。
Work.java
StudentWork.java
TeacherWork.java
注意了,重点来了。首先看一下我们的接口:
IWorkFactory.java
StudentFactoryMethod.java
TeacherFactoryMethod.java
测试类:
看了上面完整的设计方法,是不是有点明白,让我们用图来看的更清楚一些:
工厂模式主要适用于以下几个方面:
1.当一个类不知道它要创建那个类得对象时。
2.当一个类希望由它的子类来指定它所创建的对象的时候。
简单工厂类的最大优点是在工厂逻辑中包含了必要的逻辑判断,根据客户端选择的条件动态创建对象。
看看下面这段代码,你应该有所顿悟:
Person.java里面写一个抽象方法。
public abstract void dowork();
Child.java
public class Child extends Person{ public void dowork() { System.out.println("学生写作业"); }
Old.java
public class Old extends Person{ public void dowork(){ System.out.println("看着孩子写作业"); }
SimpleFactory.java
public class SimpleFactory { public Person createPerson(String name) { if (name.equals("old")) { return new Old(); } else { return new Child(); } } }
测试类:
public static void main(String[] args) { SimpleFactory simpleFactory = new SimpleFactory(); Person p = simpleFactory.createPerson("old"); p.dowork(); Person P2 = simpleFactory.createPerson("child"); P2.dowork(); }
什么事工厂方法呢?
我觉得很多书说的太专业了,有时让我们有点难懂,我觉得工厂方法就是通过一个方法创建对象。当然,这之间还要注意很多的逻辑关系。首先,让我们看一下几个代码片段。
Work.java
public interface Work { void doWork(); }
StudentWork.java
public class StudentWork implements Work{ @Override public void doWork() { // TODO Auto-generated method stub System.out.println("学生的工作"); } }
TeacherWork.java
public class TeacherWork implements Work{ @Override public void doWork() { // TODO Auto-generated method stub System.out.println("老师做的工作"); } }
注意了,重点来了。首先看一下我们的接口:
IWorkFactory.java
public interface IWorkFactory { Work getWork(); }
StudentFactoryMethod.java
public class StudentFactoryMethod implements IWorkFactory{ @Override public Work getWork() { // TODO Auto-generated method stub return new StudentWork(); } }
TeacherFactoryMethod.java
public class TeacherFactoryMethod implements IWorkFactory{ @Override public Work getWork() { // TODO Auto-generated method stub return new TeacherWork(); } }
测试类:
public static void main(String[] args) { IWorkFactory studentFactory = new StudentFactoryMethod(); studentFactory.getWork().doWork(); IWorkFactory teaFactory = new TeacherFactoryMethod(); teaFactory.getWork().doWork(); }
看了上面完整的设计方法,是不是有点明白,让我们用图来看的更清楚一些:
工厂模式主要适用于以下几个方面:
1.当一个类不知道它要创建那个类得对象时。
2.当一个类希望由它的子类来指定它所创建的对象的时候。
相关文章推荐
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- JAVA设计模式——工厂方法(Factory Method)模式
- 设计模式(一)----- 工厂方法(FactoryMethod)----(JAVA版)
- Java设计模式圣经连载(02)-工厂方法(Factory Method)模式
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- Java设计模式——工厂方法(Factory Method)
- 设计模式(一)----- 工厂方法(FactoryMethod)----(JAVA版)
- iOS 设计模式之简单工厂方法模式(SimpleFactoryMethod)
- 3.23种设计模式的Java版--Factory Method(工厂方法)
- Java:设计模式之工厂方法(Factory Method)
- java设计模式之工厂模式--普通工厂方法模式(Factory Method)
- java设计模式之创建型模式-FactoryMethod ( 工厂方法 )
- 浅谈JAVA设计模式之——工厂方法(FactoryMethod)
- [创建型模式系列]simple factory & factory method 简单工厂类和工厂方法类的概念及区别
- 【设计模式】创建型模式之工厂方法Factory Method
- 学习笔记系列之NET设计模式(3):工厂方法(Factory Method)
- java与模式 工厂方法(factory method)
- Java设计模式——简单工厂(Simple Factory)
- 设计模式之(Factory method)工厂方法模式
- 设计模式之工厂方法(factory method)