当前位置: 首页 > news >正文

做网站着用什么电脑东营建设企业网站

做网站着用什么电脑,东营建设企业网站,郑州pc网站建设,社区网站开发需求文档简单的工厂类的一个使用场景是#xff0c; 假设有一个基类 BaseClass#xff0c; 和一系列的子类 A#xff0c; B#xff0c; C#xff0c; 工厂类根据某个参数#xff0c;例如字符串 “A”, “B”, “C” 创建出相应的子类。 举例如下#xff1a; public class Factory…简单的工厂类的一个使用场景是 假设有一个基类 BaseClass 和一系列的子类 A B C 工厂类根据某个参数例如字符串 “A”, “B”, “C” 创建出相应的子类。 举例如下 public class Factory {public static BaseClass Create(string name){switch (name){case A: return new A();case B: return new B();case C: return new C();default: throw new ArgumentException(Wrong Name);}} } 这里的一个问题是 当子类增加或减少时 Factory 类 需要相应的改动。 有没有办法可以只是改动子类本身 而不用修改Factory类呢 当然有这里我举一个简单的实现。 基本思想是在每个子类上附加一个 Attribute 定义如下 [AttributeUsage(AttributeTargets.Class)] public class FactoryKeyAttribute : Attribute {public object Key { get; set; } } 假设我们有基类和子类实现如下 public abstract class BaseClass {}[FactoryKey(Key Standard)] public class Standard : BaseClass {}[FactoryKey(Key Enterprise)] public class Enterprise : BaseClass {}[FactoryKey(Key Lite)] public class Lite : BaseClass {}   假设这些类都在同一个 Assembly中 对于不在同一个Assembly的实现会稍微复杂些工厂类需要预先加载 Key Type 的Mapping 然后根据Key创建不同的实例 实现如下 public class FactoryTKey, TBaseClass {private static readonly IDictionaryTKey, Type TypeDict Init();private static IDictionaryTKey, Type Init(){var dict from type in Assembly.GetExecutingAssembly().GetTypes()let key (FactoryKeyAttribute)Attribute.GetCustomAttribute(type, typeof(FactoryKeyAttribute))where key ! null typeof(TBaseClass).IsAssignableFrom(type)select new { Key key, Value type };return dict.ToDictionary(kvp (TKey)kvp.Key.Key, kvp kvp.Value);}public static TBaseClass CreateInstance(TKey key){Type type;if (TypeDict.TryGetValue(key, out type)){return (TBaseClass)Activator.CreateInstance(type);}throw new ArgumentException(Incorrect Key!);} } 使用方法也很简单 BaseClass s Factorystring, BaseClass.CreateInstance(Standard); BaseClass l Factorystring, BaseClass.CreateInstance(Lite); BaseClass e Factorystring, BaseClass.CreateInstance(Enterprise);   对于其他类型的Key比如 Enum 或其他类型的基类 改变Factory 的类型参数即可。转载于:https://www.cnblogs.com/oujinliang/archive/2010/01/07/1641056.html
http://www.pierceye.com/news/188983/

相关文章:

  • 网站导航做外链桂林seo
  • 青岛网站建设q479185700棒软件开发者是指
  • 福永公司网站建设空间网站链接怎么做
  • 百度的企业网站谷歌浏览器下载安卓版
  • 网站建设总体情况网站设计宁波
  • 西宁做网站_君博示范360建筑网会员
  • 做DJ网站违法吗汕头seo网站推广
  • 上海网站建设网站宁波网站模板哪家性价比高
  • 珠海专业做网站制作做网站网站的代理算网站罪吗
  • 建设局网站简介通信建设网站
  • php做网站用什么开发工具大专软件技术工资一般多少
  • 网站建设服务承诺wordpress 博客园
  • seo综合查询站长工具关键词全网营销案例
  • 深圳专业做网站设计政务服务网站建设性建议
  • 做暧免费观看网站哪个网站可以给图片做链接
  • wordpress最好的主题东莞债务优化
  • 全国网站建设大赛网店网站设计
  • 学网站建设需要学多久wordpress火车头插件
  • wordpress 网站实例中国纪检监察报app下载
  • 网站链接dw怎么做营销推广方法
  • 觅知网 大而全的高质量素材站开发手机网站用什么好
  • 建设一个广告联盟的网站医院网站设计与实现
  • 公司网站备案必须是企业信息么网站搭建好有什么内容可以修改
  • 弄网站赚钱吗电影网站怎么做要多少钱
  • 做优化网站能以量取胜么好素材网站
  • wordpress主题网站江苏建设工程教育网
  • 网站制作 客户刁难做宠物网站赚钱吗
  • 网站突然不收录了如何形容一个网站做的好
  • 怎么建网站教程视频做网站跟推广哪家公司好
  • 怎么做网站报告四平网站公司