最近发现自己以前设计模式学的很差,因此决定从头认真把设计模式这本书好好看一遍,同时借CSDN博客记下笔记。
1. 目的
工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。
2 . 简单工厂模式的结构
3. 一个简单例子
//产品接口
public interface Product {
public void getName() ;
}
//具体产品A
public class ProductA implements Product {
public void getName() {
System.out.println(" I am ProductA " );
}
}
//具体产品B
public class ProductB implements Product {
public void getName() {
System.out.println(" I am ProductB " );
}
}
// 工厂类
public class ProductCreator {
public Product createProduct(String type) {
if ( "A".equals(type) ) {
return new ProductA();
}
if ( "B".equals(type) ) {
return new ProductB();
}
else
return null;
}
public static void main(String[] args) {
ProductCreator creator = new ProductCreator();
creator.createProduct("A").getName();
creator.createProduct("B").getName();
}
}
4. 小结工厂模式的适用范围
• 在编码时不能预见需要创建哪一种类的实例。
• 一个类使用它的子类来创建对象。
• 开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序。