工厂模式
2013年10月09日
⁄ 综合
⁄ 共 1264字 ⁄ 字号
小 中 大
- // 产品接口
- 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();
- }
- }
- //////////////////////////////////不需要修改的工厂模式///////////////
- 通过反射机制实现
- public class Factory {
- public static IFruit getInstance(String className){
IFruit fruit = null;
try {
fruit =(IFruit) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return fruit;
}
- //////////////测试仪
- IFruit f = Factory.getInstance("com.hf.tes.AppleImple");
if(f!=null){
f.eat();
}
}