读《研磨设计模式》-代码笔记-简单工厂模式

[b]声明:
本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客[url]http://chjavach.iteye.com/[/url][/b]



package design.pattern;

/*
* 个人理解:简单工厂模式就是IOC;
* 客户端要用到某一对象,本来是由客户创建的,现在改成由工厂创建,客户直接取就好了
*/
interface IProduct {
void desc();
}


class ProductImplA implements IProduct {
public void desc() {
System.out.println("Product A");
}
}


class ProductImplB implements IProduct {
public void desc() {
System.out.println("Product B");
}
}


class Factory {

//可以把这个方法定义成static类型的,那Factory这个类就成为一个工具类了,称为静态工厂模式
public IProduct createProduct(int type) {
IProduct product = null;

/*究竟要创建哪一类型的Product,一般有几种:
* 1.直接传递参数,像下面的代码那样
* 2.在properties文件里面配置要创建的类名(全类名,包括包名,以便反射),读取文件,得到类名,反射生成实例
* 3.根据数据库的参数创建
* 4.为不同的产品提供不同的方法:createProductA(); createProductB()...
*/
if (type == 1) {
product = new ProductImplA();
} else if (type == 2) {
product = new ProductImplB();
}
return product;
}
}


public class SimpleFactoryPattern {

public static void main(String[] args) {
Factory f = new Factory();
int type = 1;
IProduct product = f.createProduct(type);
product.desc();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值