随笔分类 -  设计模式学习

摘要:一、场景:最近在优化一个以前的系统,存在一个如下的场合:我们目前有三个种类型的合集包(官方合集包、游戏合集包、渠道合集包),以前的代码在实现上都是都通过在一个函数当中添加【if...else...】条件来处理不同种类合集包的不同处理,这样的做的结果就是这个函数的结构越来越庞大,每次变动一个类型处理都 阅读全文
posted @ 2019-01-09 19:36 奋斗的大橙子 阅读(352) 评论(0) 推荐(0) 编辑
摘要:场景:我们的冒险家,现在需要去武器商店买一把兵器,有刀和剑两种武器,冒险者可以告诉武器商人需要哪一种武器,然后武器商人进行锻造,最后把产品给冒险者,用建造者模式如何实现? 1.什么是建造者模式? 之前写过简单工厂、工厂方法以及抽象工厂,这些东西都是创建型设计模式,同样建造者模式也是一种创建型的设计模 阅读全文
posted @ 2016-03-24 00:57 奋斗的大橙子 阅读(192) 评论(0) 推荐(0) 编辑
摘要:http://blog.jobbole.com/78067/ 这个例子非常好,非常明白。 感觉抽象工厂模式的难点,在于如何分类,例如这样一个场景,还是打怪,现在有一个剑制造工厂和一个刀制造工厂,分别可以创建出木质和铁质的武器, 那么,是以木和铁作为标准进行分类抽象,还是以剑和刀作为抽象呢? http 阅读全文
posted @ 2016-03-17 15:41 奋斗的大橙子 阅读(123) 评论(0) 推荐(0) 编辑
摘要:场景:简单工厂时候,我设计了一个场景,有三种剑去打怪,这时候,需求变化了,我三种剑变成了,匕首、剑以及木棒,想要用工厂方法来实现,怎么弄? 1.上文讲过简单工厂模式,它的最大优点在于工厂类内有创建类型的判断逻辑,客户端只需要通过动态的选择想要创建的类型,就可以交给工厂类来创建,去除了客户与具体产品之 阅读全文
posted @ 2016-03-17 14:42 奋斗的大橙子 阅读(204) 评论(0) 推荐(0) 编辑
摘要:场景:假设每次我们去超市购物,我们都会推一个购物车,有水果、蔬菜、肉类三种商品,提供给我们选择,那么这时候,如果使用装饰器模式,应该如何实现? 1.什么是装饰器模式 首先我们知道,如果想要给一个类或者对象添加一些行为,可以通过继承这样的机制,通过子类继承父类的方式,使得子类在拥有自己的行为的时候,同 阅读全文
posted @ 2016-03-14 14:44 奋斗的大橙子 阅读(225) 评论(0) 推荐(1) 编辑
摘要:1.单一职责原则 解释:对于一个类而言,应该有且仅有一个引起它变化的原因。 为什么要用单一职责:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化  可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许 阅读全文
posted @ 2016-03-14 10:16 奋斗的大橙子 阅读(156) 评论(0) 推荐(1) 编辑
摘要:场景:有一个喜欢吃饺子,他有三种不同的方式去吃,蒸饺子,煮饺子,煎饺子,想要用策略模式来设计这个场景,怎么弄? 1.复习简单工厂模式 具体的代码: EatMethod.cs public class EatMethod{ public virtual void Eat() { Console.Wri 阅读全文
posted @ 2016-03-11 11:31 奋斗的大橙子 阅读(174) 评论(0) 推荐(1) 编辑
摘要:情景:有一个怪兽,HP是100,现在勇士有可以使用武器将其打败,有三种武器,木剑每次打击20血,铁剑每次50血,金刚剑每次100血,如果想要使用简单工厂方式,怎么设计? 一.啥是简单工厂? 通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 结构大概如下图: 画出场景的类图 阅读全文
posted @ 2016-03-10 13:43 奋斗的大橙子 阅读(190) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示