java设计模式--工厂方法模式
2013-09-05 11:04
288 查看
工厂方法模式(Factory Method Pattern)定义了一个创建对象的接口,通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。
工厂方法结构:
Factory类以create方法创建实例,createProduct方法则由子类来具体实现product的创建,registerProduct完成product注册。
紧耦合和松耦合:如何进行模块划分?
主模块(抽象部分)-->次模块(细节具体部分) 对模块进行分析(高层模块-->低层模块)
在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。
如何应对这种变化?如何提供一种“封装机制”来隔离出“这种易变对象”的变化,从而保持系统中
“其他依赖该对象的对象(主逻辑)”不随着需求改变而改变?
解决:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟。
工厂方法结构:
public abstract class Product { public abstract void use(); }产品类声明了抽象方法use(),use方法的具体实现则由Product子类负责。
public abstract class Factory { public final Product create(String owner) { Product product = createProduct(owner); registerProduct(product); return product; } protected abstract Product createProduct(String owner); protected abstract void registerProduct(Product product); }
Factory类以create方法创建实例,createProduct方法则由子类来具体实现product的创建,registerProduct完成product注册。
public class InstanceProduct extends Product { String owner; public InstanceProduct(String owner) { this.owner = owner; } public void use() { System.out.println(owner); } }
public class InstanceFactory extends Factory { private Vector mVector = new Vector(); protected Product createProduct(String owner) { return new InstanceProduct(owner); } protected void registerProduct(Product product) { mVector.add(product); } }
紧耦合和松耦合:如何进行模块划分?
主模块(抽象部分)-->次模块(细节具体部分) 对模块进行分析(高层模块-->低层模块)
在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。
如何应对这种变化?如何提供一种“封装机制”来隔离出“这种易变对象”的变化,从而保持系统中
“其他依赖该对象的对象(主逻辑)”不随着需求改变而改变?
解决:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟。
相关文章推荐
- Java设计模式3:工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式-工厂方法模式
- java设计模式学习 ----- 工厂方法模式(Factory Method)
- 设计模式--创建模式--工厂方法模式--java
- JAVA设计模式-02-工厂方法模式
- 设计模式java——工厂方法模式
- JAVA设计模式之【工厂方法模式】
- Java 设计模式情景分析——工厂方法模式
- 一起学Java设计模式--工厂方法模式(不在23种设计模式之内)
- java设计模式1--工厂方法模式(Factory Method)
- JAVA设计模式(二)——工厂方法模式
- Java设计模式(一) 设计模式初探——简单工厂和工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式百例 - 工厂方法模式
- JAVA基础再回首(二十六)——面向对象思想设计原则、设计模式、简单工厂模式、工厂方法模式、单例设计模式之饿汉式和懒汉式、Runtime类
- java设计模式——工厂方法模式
- JAVA设计模式三--factorymethod(工厂方法模式)
- java设计模式学习(一)-工厂方法模式3(最通俗易懂)
- Java设计模式 —— 工厂方法模式 (Factory Method)