设计模式
蝴蝶Maple
不会写java的python数据科学家不是一个好学术研究者。喜欢分享自己的经验。喜欢为大家埋开发过程中的坑。希望大家多点赞,多关注我。毕竟本身没到大神级别,原创文章可能会有错误,希望多多指正。
展开
-
第一章:设计模式:策略模式(一)
场景做一套模拟鸭子的游戏。游戏中会出现各种鸭子,一边游泳一边咕咕叫。此系统内部设计应用了标准的的OO技术,设计了一个鸭子的超类,并让鸭子继承此超类。需求增加了需要会飞的鸭子来将竞争者抛在后头。这时候的设计是但是,可怕的事情发生了。。。并非所有的鸭子都会飞,某些鸭子并不适合该行为,比如添加了一个橡皮鸭的种类就无法飞行。对代码所做的局部修改,影响层面可不仅仅是局部。原创 2018-02-06 16:50:17 · 175 阅读 · 0 评论 -
第一章:设计模式:策略模式(二)
上一节讲到利用继承思想每次更改鸭子的种类都会被迫检查可能需要覆盖的fly()和quark()方法。。。这简直是无穷无尽的噩梦。所以需要一个更清晰的方法让某些鸭子类型可飞或可叫。这样的话就发现重复代码会变得非常多。而且对于多种鸭子比如50个鸭子的飞行类都需要稍微修改一下的话那么每个鸭子都需要修改。我们知道并非所有的子类都具有飞行和呱呱叫的行为,所以继承并不是适当的解决方式。虽然F原创 2018-02-07 17:10:01 · 199 阅读 · 0 评论 -
第一章:设计模式:策略模式(三)
整合在于,鸭子现在会将飞行和呱呱叫的动作“委托”别人处理,而不是使用定义在Duck类(或子类)内的呱呱叫和飞行方法。做法是这样的:1.首先,在Duck类中加入两个“实例变量”,分别为"flyBehavior"与"quackBehavior",声明为接口类型(而不是具体类实现类型),每个鸭子对象都会动态地设置这些变量以在运行时引用正确的行为类型(例如:FlyWithWings,Squeak等)。我们...原创 2018-02-23 14:56:33 · 215 阅读 · 0 评论 -
初谈设计模式
简介 现在模式设计从很早之前的面相过程的原则到现在的面相对象的原则(Object Oriented简称oo)。设计模式在软件开发过程中是个必不可少的知识点。或许许多刚开始编写代码或没有维护过产品的人很少体验过设计模式的重要性,但是运用恰当的设计模式,能极大减少需求变更的代价和代码重构的风险。 推荐的书籍是《head first 设计模式》这本书讲的浅显易懂并且了解的非常深入。笔者主要是搬运...原创 2018-02-05 13:48:03 · 502 阅读 · 0 评论 -
第一章:设计模式:策略模式(四)
动态设定行为1.在Duck类中加入两个新方法代码如下 public void setFlyBehavior(FlyBehavior flyBehavior) { this.flyBehavior = flyBehavior; } public void setQuackBehavior(QuackBehavior quackBehavior) { ...原创 2018-02-24 15:32:39 · 169 阅读 · 0 评论