设计模式——抽象工厂
来源:互联网 发布:淘宝评价在哪里写 编辑:程序博客网 时间:2024/06/07 00:49
系统要求: 公司有上海和北京2个分公司,分别采用不同的数据库Beijing,Shanghai库。他们的业务逻辑,需求基本一样。要求设计一个系统实现信息集成。注意:以后公司还要在全国其他城市扩展业务。采用抽象工厂模式: 将基本业务写到 Interface ,接口里面。 再分别在BeiJing项目和Shanghai项目中实现。Interface文件IFactory接口:using System;using System.Collections.Generic;using System.Text;namespace yu.Test{ public interface IFactory { //定义 创建业务类 //定义一个项目中业务User类 IUser CreateUser(); //定义一个项目中业务Order类 IOrder CreateOrder(); }}//IOrder接口using System;using System.Collections.Generic;using System.Text;namespace yu.Test{ public interface IOrder { //得到订单ID String GetOrderID(); }}ShangHai文件:sFactory 类using System;using System.Collections.Generic;using System.Text;namespace yu.Test{ public class sFactory : IFactory //继承Interface 的IFactory,实现IFactory里面的方法。主要创建业务类 { //创建User类 public IUser CreateUser() { return new sUser(); } //创建Order类 public IOrder CreateOrder() { return new sOrder(); } }}//order类using System;using System.Collections.Generic;using System.Text;namespace yu.Test{ public class sOrder:IOrder { public String GetOrderID() { return "ShangHai20080621001"; } }}//北京文件using System;using System.Collections.Generic;using System.Text;namespace yu.Test{ public class bFactory : IFactory //继承Interface 的IFactory,实现IFactory里面的方法。主要创建业务类 { //创建User类 public IUser CreateUser() { return new bUser(); } //创建Order类 public IOrder CreateOrder() { return new bOrder(); } }}using System;using System.Collections.Generic;using System.Text;namespace yu.Test{ public class bOrder:IOrder { public String GetOrderID() { return "BeiJing20080621001"; } }}//调用using System;using System.Collections.Generic;using System.Text;using yu.Test;namespace TestMain{ class Program { static void Main(string[] args) { IFactory ify = new sFactory();//引用Factory,指定为 sFactory,这个一般写到配置文件或者公共文件里面 IUser objUser = ify.CreateUser(); //接口前,类实例化在后 Console.WriteLine(objUser.GetUser()); IFactory ify2 = new bFactory();//引用Factory,指定为 bFactory,这个一般写到配置文件或者公共文件里面 IUser objUser2 = ify2.CreateUser(); Console.WriteLine(objUser2.GetUser()); Console.WriteLine(); IOrder shOrder=ify.CreateOrder(); Console.WriteLine("上海订单号: "+shOrder.GetOrderID()); IOrder bjOrder = ify2.CreateOrder(); Console.WriteLine("北京订单号: " + bjOrder.GetOrderID()); Console.Read(); } }}
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 设计模式——抽象工厂模式
- 我的第一次
- WPF简介、前景分析、影响程度、WPF资料
- 绩效相关
- 未处理 System.Data.SqlClient.SqlException
- WPF开发简介
- 设计模式——抽象工厂
- 编程技巧:动态操作网页控件
- 在c#中集合类使用static的好与不好!
- ASP.NET刷新页面的六种方法
- Unix/Linux 的 Load 初级解释
- .NET开发实现类似Web Parts功能,超简单实现
- Oracle Spatial详解
- 构建完美的WPF开发工作站
- DataSet转XML流,直接下载