本帖最后由 feng_0207 于 2014-11-3 23:44 编辑
讲工厂设计模式也讲不过各位老师的视频给你简单说一下以前用到过的一些东西和用的时候的想法吧。
工厂,顾名思义,他就是一个流水线,负责产生某样东西,根据进来的东西不同,它产生不同的东西。
在java实际开发中 通常会遇到这种情况,就是一个接口,有多个实现,完成不同的功能。
当我们不用工厂模式的时候 我们是这样写:
InterfaceName iName = new implementatClass()
这样写的前提是你知道这个实现类什么名字。
使用工厂模式,就是你不需要知道这个实现类具体什么名字,只需要告诉工厂想产生一个什么样的实现类,只需要给工厂一个类型。
使用工厂模式, 不想敲汉字了 给你拷贝别处的代码吧。
接口:
- public interface IProduct {
- public void creatProduct();
- }
复制代码 多个实现类:
- public class ProductAirCondition implements IProduct {
- @Override
- public void creatProduct() {
- // TODO Auto-generated method stub
- System.out.println("空调");
- }
- }
- public class ProductIcebox implements IProduct {
- @Override
- public void creatProduct() {
- // TODO Auto-generated method stub
- System.out.println("电冰箱");
- }
- }
- public class ProductWasher implements IProduct {
- @Override
- public void creatProduct() {
- // TODO Auto-generated method stub
- System.out.println("洗衣机");
- }
- }
复制代码
最主要的 工厂:
- public static Product factory(String productName) throws Exception{
- if(productName.equals("Washer")){
- return new ProductWasher ();
- }else if(productName.equals("Icebox")){
- return new ProductIcebox ();
- }else if(productName.equals("AirCondition")){
- return new <span style="line-height: 2.2em;">ProductAirCondition</span><span style="line-height: 2.2em;"> </span><span style="line-height: 2.2em;"> </span><span style="line-height: 2.2em;">(); </span>
复制代码
这个工厂类 还有简化的方法 不过忘记了。
说的很乱。希望对你有帮助
|