逗B少年搞程序03 简单工厂模式——模式来源于生活而高于生活
来源:互联网 发布:c语言数组怎么用 编辑:程序博客网 时间:2024/06/04 18:29
终于是到了传说中的大话设计模式的学习了,很早之前就听米老师说过这个是提高班唯一指定学习的书,师傅也是跟我提过一次,然后我就顺手下了本电子书。那个时候看着真是毛都不懂啊,虽然是中国字,但是放在一起就是不知道那是个什么意思。
上周的时候抽空看了几页,每天保证英语的情况下,看了自考,再看计算机的时间就少了,以后不能让自考等级考试什么的影响正常的学习生活,不然整个节奏都乱了。
该进入正题了。
说到这个设计模式,偶然的情况下看到了CSDN的博客推荐邮件,我想大家应该收到了。里面是用游戏中的一些场景分析各个设计模式的应用。从第一篇的星际争霸分析抽象工厂模式,到最新的欢迎界面分析模板方法模式,每一篇我都看了一遍,虽然只看懂了工厂模式和策略模式。
不管了,起码先看一遍,等到自己学的时候再看一遍,印象就更加深刻了。
既然有人开了个头,那我就放心大胆的写代码了。
大牛们研究设计模式是为了应对生活中的各种情况,那么我们是不是应该从生活中学习设计模式呢?联系到生活我就来劲了,这两天又看了一边简单工厂模式的例子,仔细捉摸了一遍,写了几个模仿的例子,终于是有了一点点的理解。
首先是工厂类的理解。之前的面向过程的编程中,我们习惯了把大段的判断代码,显示代码,还有其他的什么什么代码写到窗体类中。这样看上去很美,但是违反了单一职责原则,一个既要显示显示窗体,又要判断输入的字符,万一出了一点错误都不知道是哪出错了,进行修改也会很麻烦,专业点说就是耦合性高了。
所以这个工厂类只是抽象出来的一个判断类,用来判断到底要实例化哪一个具体的子类。
诶,这几好办了嘛~作为一个作死专业户第一个就想到了dota上边,兵营生产近战兵,远程兵,在拆了对面的相同路兵营之后还能生产超级兵。恩,果断写了个简单兵营模式。。。咳咳,这下理解起来就容易多了。
我就说过我写了好几个例子,就怕没人信,这回不写dota,放出一个简单饭店模式。
首先是定义了菜这个类,去饭店是干嘛的是吧,总得吃点菜啊,硬是要吃馒头咸菜的少年出门左拐不送。这个菜分凉菜热菜,再往下还能分,这次就先到这了。
public class 菜{ public virtual string getname() { string name = null; return name; }}class 热菜 : 菜{ public override string getname() { string name="热菜"; return name; }}class 凉菜 : 菜 { public override string getname() { string name = "凉菜"; return name; }}
客户点好了菜,告诉厨师,厨师根据客户的要求,去做凉菜还是热菜。
public class 厨师{ public static 菜 Cook(string name) { 菜 dish = null; switch (name) { case"热菜": dish=new 热菜(); break; case"凉菜": dish = new 凉菜(); break; } return dish; }}再来一个前台,也就是客户端,专门用来接收客户的菜单。
class Program { static void Main(string[] args) { 菜 dish; dish = 厨师.Cook("热菜"); Console.WriteLine(dish.getname()); } }好吧,这个居然没用ReadLine读取输入的数据,失误了。。。下次在写博客的时候不能偷懒了。。。
貌似还需要写点什么话作总结,反正我的思路一直都是强行和生活联系的,理解起来自认为还是够快的,有时学什么原理性的知识不能很好地找到生活中的原型,就学的一塌糊涂,比如微机原理、计算机组成原理、编译原理。。。看来还是要加强修行啊。
以上
- 逗B少年搞程序03 简单工厂模式——模式来源于生活而高于生活
- 逗B少年搞程序04 策略模式——这次要甩什么技能呢~
- 逗B少年搞程序04 装饰模式——又是一波非常规性总结
- 逗B少年搞程序06 原型模式——手动蜡烛
- 逗B少年搞程序05 代理模式——名字都是后来补的,幸好没人看
- 逗B少年搞程序07 模板方法模式——思路可以相同,但思路不会被复制
- 知识源于生活而高于生活
- 把爱融入程序——程序,源自生活,高于生活
- 李实名的现代生活 之简单工厂模式
- 设计模式--抽象工厂,与生活结合
- 设计模式--工厂方法,与生活联系
- 逗B少年搞程序00 软工减肥计划
- 逗B少年搞程序番外篇 U My Love
- 逗B少年搞程序番外篇 人山人海,我自独白
- java设计模式示例程序之 ——简单工厂、工厂方法、抽象工厂模式
- 艺术来源于生活
- 面向对象就是面向生活,而模式就是解决生活中特定问题的最佳实践。
- 生活化技术:抽象工厂模式 vs. 服装采购
- 鼠标滚动 回到顶部
- sgu100-熟悉环境
- 关于字符串的那些事儿
- C#获取外网IP地址;C#获取所在IP城市地址
- sys.argv和raw_input的区别
- 逗B少年搞程序03 简单工厂模式——模式来源于生活而高于生活
- Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法
- 游戏架构 云游戏(4)-云主机与vps的对比
- 高效开发Android App的10个建议
- win32通用控件TreeView滚动条自绘
- C语言实现数值转换(十进制转八进制)
- 程序员编程艺术:第三章续、Top K算法问题的实现
- 基于二维傅里叶变换法的MRI成像原理的Matlab仿真(3)
- 驱动模块Makefile解析