工厂模式讲解

发布时间:2019-01-28   来源:文档文库   
字号:

asp.net 工厂模式讲解
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。这也是对象与过程分离的技术提现了oo思想 一般我们将工厂模式分为一下三种: 1)简单工厂模式(Simple Factory 2)工厂方法模式(Factory Method 3)抽象工厂模式(Abstract Factory

简单工厂模式:简单工厂模式又称静态工厂方法模式。它存在的目的很简单:定义一个用于创建对象的接口。 它的组成:
工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。
抽象产品角色:它一般是具体产品继承的父类或者实现的接口,要实现什么功能。
具体产品角色:工厂类所创建的对象就是此角色的实例,具体类的实现,是提现产品的实际功能。

下面讲一个实例,相信很多人已经看过:
话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:Benz车后跟司机说开奔驰车!坐上Bmw后他说开宝马车!坐上Audi开奥迪车!。你一定说:这人有病!直接说开车不就行了?!
而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存在的现象。幸运的是,这种有病的现象在OO(面向对象)语言中可以避免了。下面就以C#语言为基础来引入我们本文的主题:工厂模式的工厂方法。 //抽象产品角色 public interface Car { string drive(; }

//具体产品角色,具体类的实现 public class BenzCar : Car { public string drive( { return "Driving Benz"; } }
public class BmwCar : Car {
public string drive(
1

{ return "Driving Bmw"; } }

//工厂类角色,本模式的核心 选择实体工厂 public static Car DriverCar(string category { switch(category { case "Benz": return new BenzCar(; break;
case "BmwCar": return new BmwCar(; break; default: return null; } }
//这里用户只需选择要开什么车就ok
protected void Page_Load(object sender, EventArgs e { Car car = Driver.DriverCar("Benz"; Response.Write(car.drive(; }
工厂部分好像不太理想,因为每增加一辆车,都要在工厂类中增加相应的业务逻辑或者判断逻辑。抽象工厂模式能改变这一点。也就可以用条件外置(在web.config里面配置)和反射(加载实体的产品)来实现


2

本文来源:https://www.2haoxitong.net/k/doc/638a41440a4c2e3f5727a5e9856a561253d32159.html

《工厂模式讲解.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式