关于抽象工厂。。 本帖最后由 a13623127108 于 2010-06-06 22:34:45 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个用“工厂模式”或“简单工厂模式”就可以了,“抽象工厂模式”是用来生成一系列的“产品”的,你这个需求的“产品”就是“服务器列表”简单工厂模式:public abstract class 服务器列表{ public List<T> 列表{get;set;} // T表示服务器信息的class}public class GameA服务器列表 : 服务器列表{}public class GameB服务器列表 : 服务器列表{}public class 简单服务器列表工厂{ public static 服务器列表 GenerateServer( string key ){ if(key == "GameA"){ return new GameA服务器列表(); } else if(key == "GameB"){ return new GameB服务器列表(); } ... }} 主要是数据库serverA跟serverB字段不一样工厂模式用到三层到底是怎么个思路啊 楼主如果只把“服务器列表”作为产品的话,“工厂模式”或“简单工厂模式”足以满足LZ的代码复用的要求了。如果还能找出别的产品的话,那才要使用“抽象工厂”,“抽象工厂”是为了保证同一个工厂所制造出来的各种产品是属于同一个系列的,如果只有一种产品,可以不使用“抽象工厂”,因为它会增加class的数量,增加系统的复杂度。在.NET中,ADO.NET就是最好的“抽象工厂”的例子。System.Data.Common 命名空间中的class就是抽象的“产品”,如DbConnection、DbCommand;SqlClient、OleDbClient、OracleClient 命名空间中的对应class就是实际的“产品”;而DbProvider 就是抽象工厂了,它负责制造DbConnection等产品。 有不同的字段,但是结构是一样的? 不懂如果不闲麻烦,可以提供两套 DAL Model把访问哪个DAL 变得可配置, 根据传进来的程序集信息访问不同DAL,, 【求助】 求一个System.Data.SqlServerCe, Version=9.0.242.0 纺织行业布匹包装明细登记 ASPNET2System 如何控制各个控件之间的间距? C#里如何限制放入picturebox控件图片大小(winform) c#怎么实现随机播放音乐 关于msde的问题??? C# 对比两个不同类型的库表中的数据?帮帮忙 如何用C#编写一段可自动执行程序,急 [我跟你们拼了!!!]大型C# B/S OA源码公布了,要就留Email. winform中如何实现webform中DataList效果 登录跳转问题
public List<T> 列表{get;set;} // T表示服务器信息的class
}public class GameA服务器列表 : 服务器列表{}public class GameB服务器列表 : 服务器列表{}public class 简单服务器列表工厂{
public static 服务器列表 GenerateServer( string key ){
if(key == "GameA"){
return new GameA服务器列表();
}
else if(key == "GameB"){
return new GameB服务器列表();
}
...
}
}
System.Data.Common 命名空间中的class就是抽象的“产品”,如DbConnection、DbCommand;
SqlClient、OleDbClient、OracleClient 命名空间中的对应class就是实际的“产品”;
而DbProvider 就是抽象工厂了,它负责制造DbConnection等产品。