cctv5节目表大全
在日常的学习、工作、生活中,肯定对各类范文都很熟悉吧。那么我们该如何写一篇较为完美的范文呢?接下来小编就给大家介绍一下优秀的范文该怎么写,我们一起来看一看吧。
cctv5节目表篇一
利用设计模式可以使我们的代码更灵活,更容易扩展,更容易维护。各种面向对象的程序设计语言都提供了基本相同的机制:比如类、继承、派生、多态等等。但是又有各自的特色,c# 中的反射机制便是一个很重要的工具,好好地利用就可以在实际中发挥很大的作用。 下面就和小编一起看看c#抽象工厂模式的几种实现方法及比较吧。
我们来看一个例子:
我的程序中有需要一系列的对象,比如apple,orange…, 要想利用他们,我们就必须在程序中根据用户要求,然后一个个调用 new 操作符来生成他们,这样客户程序就要知道相应的类的信息,生成的代码显然不够灵活。我们可以在代码中不利用具体的类,而只是说明我们需要什么,然后就能够得到我们想要的对象吗?
哦,我们都看设计模式,听吧,很多人都在那里鼓吹他们是如何如何的棒,我们看看怎么样利用他们来解决问题。目标明确了,那我们看看哪个能够符合我们的要求。gof的《设计模式》都看过吧,似懂非懂的看了一些,那我们看看能够不能够“凑”上去呢?j 嗯,我们的程序考虑的是对象怎么创建的,创建型模式应该符合要求吧。然后我们浏览一下各模式的“意图”部分。呵呵,第一个好像就撞到彩了,抽象工厂,我们看看吧,“提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类”,至少“无需指定它们具体的类”符合我们的要求。来看看它的结构吧:
我们的问题好像用不到这么复杂吧,只有orange,apple等等(应该就是product了),他们显然是一类的,都是fruit,我们只要一个生产水果的工厂就可以,左边的继承层次不要,只有一个fruitfactroy看看行不,先别管它正统不正统,实用就行j
下面的一些东西显然是我们需要的.:
public interface ifruit < { < } < < public class orange:ifruit < { < public orange() < { < ine("an orange is got!"); < } < } < < public class apple:ifruit < { < public apple() < { < ine("an apple is got!"); < } < } |
我们的fruitfactory应该是怎么样呢?上面的结构图中它给的是createproducta,那好,我就makeorange,还有一个createproductb,俺makeorange还不行??
public class fruitfactory < { < public orange makeorange() < { < return new orange(); < } < public apple makeapple() < { < return new apple(); < } < } |
怎么使用这个工厂呢?我们来写下面的代码:
string fruitname = ne(); < ifruit myfruit = null; < fruitfactory myfruitfactory = new fruitfactory(); < < switch (fruitname) < { < case "orange": < myfruit = ange(); < break; < case "apple": < myfruit = ple(); < break; < default: < break; < } |
编译运行,然后在控制台输入想要的东西,呵呵,成功了。沉浸在幸福中的你得意忘形了吧。
不过等等,它好像还不完美,我如果想要pear,我既要在客户代码中的switch中加入判断,又要在工厂方法中加入makepear方法,好像不怎么优雅。更好一点,在工厂中只提供一个方法,makefruit,然后传递进一个参数name,代表我们想要的水果的名称,这样的话,似乎我们的客户代码中的那个switch就可以不要了,相反,在fruitfactory中好像需要一个,还等什么呢?实现吧。
fruitfactory: < public class fruitfactory < { < public ifruit makefruit(string name) < { < switch (name) < { < case "orange": < return new orange(); < case "apple": < return new apple(); < default: < return null; < } < } < } |
客户代码:
string fruitname = ne(); < ifruit myfruit; < fruitfactory myfruitfactory = new fruitfactory(); < myfruit = uit(fruitname); |
这样看起来好多了,至少我客户代码中不要再写那么一长串的判断代码了。
阿q精神又在起作用,我们又沉浸在成功的喜悦中了。 嗯,代码好像可以,应该没有什么改进了。但是好像又有另外一个声音在说:
“除了一点……”
“嗯? 等等,什么?”
“fruitfactory也有switch啊,看起来也ugly啊!”
“哼,肯定是看《重构》或者是《tdd》了,怎么要求那么苛刻!反正闲着也是闲着,看看可以改不?”
既然不要条件判断,传入的只有水果的名称,假如name = “apple”,要生成一个apple的对象,我需要new apple(),如果我能够这样多好: new makeittoclass(name),把字符串转换成一个类。c#中虽然没有上述语法,但是提供了相应的机制,那就是反射。类,它对于反射起着核心的作用。我们可以使用 type 对象的方法、字段、属性和嵌套类来查找有关该类型的所有信息。
tor,它包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。
我们可以先利用type类获取name指定的类名的类的type信息,然后可以根据这个信息利用activator创建对象。还等什么呢?
public class fruitfactory < { < public ifruit makefruit(string name) < { < ifruit myfruit = null; < try < { < type type = e(name,true); < myfruit = (ifruit)instance(type); < } < catch (typeloadexception e) < ine("i dont know this kind of fruit,exception caught - {0}" ,e); < return myfruit; < } < } |
经过这样的处理以后,增加新的水果的时候,我们不需要修改客户代码了,同时工厂的代码也不需要修改了,怎么样,爽吧!
s("content_relate");【c#抽象工厂模式的几种实现方法及比较】相关文章:
1.kmp算法的c#实现方法2.快速排序算法及c#版的实现示例3.c#实现轮询算法实例代码4.java开发策略模式的简单应用实现方法5.java抽象类和接口的比较6.php中抽象类与抽象方法的用法7.c#实现协同过滤算法的实例代码8.c#trietree介绍及实现方法
-
2012六一节目 六一儿童节游戏表演节目
-
表演节目策划书
-
2023年项目表扬信(大全8篇)
-
小学2009春六一节表彰大会节目主持稿
-
2023年教师节表演节目串词 元旦教师表演节目串词(7篇)
-
劳动节表彰节目(十五篇)
-
武术表演节目串词
-
2016元旦节目表范文
-
舞蹈节目串词 六一舞蹈节目串词(大全13篇)
-
端午节讲话稿题目大全
-
春节联欢会节目策划方案大全
-
年会节目表演创意 年会节目内容(4篇)
-
2023年寿宴节目表演主持词 节目表演主持词(模板10篇)
-
六一儿童节庆祝活动节目大全
-
六一儿童节游戏表演节目
-
元旦节目策划表 元旦节目策划书(5篇)
-
2023年幼儿园儿童节表演的节目 幼儿园表演节目活动方案(五篇)
-
六一节目主持词 六一节目主持词结束语大全
-
十佳教师代表演讲稿题目大全
-
最新奋斗目标 奋斗演员表大全
-
科目一考试知识点梳理表大全
-
2023年完成全年目标任务表态发言简短 完成全年目标如何表达(大全四篇)
-
元旦节目表演主持稿
-
元旦晚会节目表汇总
-
科目二考试细节扣分大全
-
节目的策划方案(大全8篇)
-
2023年节目表演主持稿的过渡语 节目表演主持词(优质13篇)
-
2023年年会节目表演清单 新年汇演节目(四篇)
-
书画类节目策划 书画表演节目取啥名(19篇)
-
电视节目策划书方案 电视节目策划方案(大全17篇)
-
2023年教师节表演节目串词(7篇)
-
六一儿童节表演节目作文(五篇)
-
2023年教师节表演节目串词(七篇)
-
毕业生晚会节目安排表
-
迎国庆节目主持词学校 国庆节目主持词(大全8篇)
-
护士节演讲稿题目篇 护士节演讲稿题目(大全14篇)
-
最新六一节目串词胭脂妆 六一节目串词(大全15篇)
-
情人节表白语录(大全12篇)
-
节目主持人的语言特点大全
-
2023年六一节目串词(大全13篇)
-
护士节发表感言(大全9篇)
-
最新元宵节朗诵稿题目大全
-
最新节目策划方案(大全13篇)
-
护士节演讲稿题目(大全13篇)
-
2023年元旦节目串词(大全13篇)
-
2011年元旦晚会节目参考大全
-
父亲节演讲稿题目18篇(大全)
-
藏族舞蹈节目串词(大全10篇)
-
年会节目策划表 年会节目策划方案(精选9篇)
-
最新年会节目策划方案 鸡年年会节目策划(大全17篇)
-
年会节目内容 年会节目活跃气氛(五篇(大全)五篇)(5篇)
-
2023年工程项目工作计划表(大全15篇)
-
最新主持词节目串词六一 节目串词主持词(大全15篇)
-
2023年大班中秋节教案目标(大全14篇)
-
护士代表发言稿题目 护士代表发言稿(大全15篇)
-
最新综艺节目策划方案 表演节目策划方案(14篇)
-
2023年武术表演节目主持串词 武术节目串词(三篇)
-
武术表演节目主持人串词
-
教师节代表发言稿(大全9篇)
-
2023年情人节浪漫表白 情人节浪漫表白语(大全15篇)
-
“相聚金秋”节目表及主持词
-
年会节目策划表(汇总13篇)
-
教师节老师表扬信(大全8篇)
-
最新节目表演邀请函模板
-
舞蹈梦想家节目串词(大全17篇)
-
教师主持的访谈节目大全(17篇)
-
2023年晚会节目串词(大全二十篇)
-
公司元旦节目表演主持词
-
敬老院表演节目的主持词
-
护士节演讲稿题目集(大全8篇)
-
电视节目策划书方案(大全20篇)
-
镇人大代表视察调研 镇人大代表视察民生实事项目大全(3篇)
-
“相聚金秋”节目表及主持词
-
“相聚金秋”节目表及主持词
-
节目表演主持结束语(18篇)
-
最新毕业节目策划表(4篇)
-
年会节目策划表(优质15篇)
-
最新科目三路考细节口诀大全
-
2023年晚会节目主持串词 晚会节目主持人串词(大全20篇)
-
最新文艺晚会节目串词版 文艺晚会节目串词(大全13篇)
-
2023年六一节目主持词及串词 六一节目主持词(大全12篇)
-
2021七夕节表白最浪漫的话 表白情书大全
-
最新护士节表彰决定 护士表彰决定大全
-
2023年教师节表彰教师代表发言(大全8篇)
-
工作计划表 工作计划与目标六篇(大全)
-
最新重点建设项目表态发言(大全8篇)
-
最新情人节表白句子霸气 情人节表白句子(大全8篇)
-
情人节表白词语 分享情人节表白心得体会(大全12篇)
-
节目主持人推荐的热门旅游目的地大全(20篇)
-
最新年会节目策划方案 年会游戏节目策划方案(大全8篇)