java设计模式
来源:互联网 发布:店管家打印软件 编辑:程序博客网 时间:2024/05/21 10:57
其实无论应用哪种设计模式,本质上都是提出不变的东西,将可变的东西作为接口,以达到最大程度上的复用和扩展
1、工厂方法模式(Factory Method Pattern):
Define an interface for creating an object,but let the subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses
定义一个创建对象的接口,但是让子类决定该实例化哪个类。工厂方法让一个类推迟实例化至它的子类中。
/** * 抽象产品类 */public abstract class Product {//产品类的公共方法 public void method1() {//业务逻辑处理 }//抽象方法 public abstract void method2();}
/** * 具体产品类1. */public class ConcreteProduct1 extends Product { public void method2() {//业务逻辑处理 }}
/** * 具体产品类2. */public class ConcreteProduct2 extends Product { public void method2() {//业务逻辑处理 }}
/** * 抽象工厂类. */public abstract class Creator { /** * * @param c * @return * 创建一个产品对象,其输入参数类型可以自行设置,通常为String、Enum、Class等,当然也可以为空 */ public abstract Product createProduct(Class<? extends Product> c);}
/** * 具体工厂类. */public class ConcreteCreator extends Creator { public Product createProduct(Class<? extends Product> c) { Product product=null; try { product = (Product)Class.forName(c.getName()).newInstance(); } catch (Exception e) {//异常处理 } return product; }}
Creator creator = new ConcreteCreator();Product product = creator.createProduct(ConcreteProduct1.class);/** * 继续业务处理 */
2、抽象工厂模式(Abstract Factory Pattern)
Provide an interface for creating families of related or dependent objects without specifying their concrete classes。
为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
0 0
- [Java] JAVA设计模式
- Java设计模式--Java设计模式介绍
- Java设计模式-模板设计
- java设计模式-----(设计原则)
- Java设计模式-设计原则
- java设计模式-观察者模式
- Java设计模式-----Singleton模式
- Java设计模式-----Command模式
- Java设计模式-----State模式
- Java设计模式-----Composite模式
- Java设计模式 -- 策略模式
- java设计模式-----策略模式
- java设计模式_Composite模式
- java 设计模式-策略模式
- java设计模式 访问者模式
- java设计模式-代理模式
- java设计模式----适配器模式
- Java 设计模式 --装饰模式
- 结构体之offsetof宏详细解析
- Space is not allowed after parameter prefix ':' MySQL异常
- PL/SQL Developer如何连接64位的Oracle图解
- WTL动态创建STATIC静态位图控件
- 【2043】校门外的树
- java设计模式
- 优先级比加法
- Android 监听Home key
- ERROR: While executing gem … (Errno::EPERM) Operation not permitted – /usr/bin/fluent-cat
- uva725 除法(第七章)
- 容量和速度单位:bit/byte/Hz
- 在webService中调用Console程序
- 序列流
- Servlet