设计模式学习
yan465942872
这个作者很懒,什么都没留下…
展开
-
设计模式学习之四(上)—开自己的比萨店
前面说过其中之一的设计原则我们不应该依赖实现编程,但是当我们每次用new时不正是在依赖实现编程吗Duck duck = new MallardDuck(); 正如上面的代码,我们使用接口让代码有了弹性,但是还是得建立具体类的实例,当有一群相关的具体类时通常会写出这样的代码:Duck duck;if(picnic){ duck = new MallardDuck();} else if(hunting) { duck = new DecoyDuck();} else if(inBa原创 2011-05-18 16:10:00 · 2773 阅读 · 0 评论 -
设计模式学习之一策略模式(Strategy)——从鸭子的设计说起
从今天开始起学习设计模式,选择的书是《Head.First设计模式》参考的书是《实用软件设计模式教程》,会把学习的笔记记在博客上,以便以后翻看。 初始的模拟鸭子的设计类图如下:当然,如果不更改业务需求的话这样设计也行,但现在公司想给鸭子增加行为fly(),问题就出现了,更改后的Duck类如下:这样设计的话就可能出现严重的问题了,可能导致一些不该出现fly行为的鸭子也具有此行为了,说不准你什么时候一看玩具店,里面到处是乱飞的塑料鸭。那这个工程师的职业生涯大概也到头了。根据几条设计原则原创 2011-04-03 22:53:00 · 1950 阅读 · 1 评论 -
设计模式学习之四(中)工厂方法模式(Factory Method)—让别人进行比萨店加盟
你的比萨店经营有成,击败了竞争者,现在大家都希望比萨店能在自家附近有加盟店。身为加盟公司经营者,你希望确保加盟店营运的质量,因为砸牌子砸的是你的牌子,所以你希望这些店都使用你那些经过时间考验的代码 ,好让比萨的流程一成不变。但是区域的差异呢?每家加盟店都可能想要提供不同风味的比萨,这受到了开店地点及该地区比萨美食家口味的影响。我们利用SimplePizzaFactory,写出三种不同的工厂,分别是NYPizzaFactory、ChicagoPizzaFactory、CaliforniaPizzaFacto原创 2011-05-30 21:41:00 · 2823 阅读 · 0 评论 -
设计模式学习之二观察者模式(Observer)——参与气象观测站的设计
业务需求:希望建立下一代Internet气象观测站!该气象站必须建立在我们专利申请中的WeatherData对象上,由WeatherData对象负责追踪目前的天气状况(温度、湿度、气压)。要求:建立一个应用,有三种布告板,分别显示目前的状况,气象统计及简单的预报。当WeatherObject对象获得最新的测量数据时,三种布告板必须实时更新。而且,这是一个可以扩展的气象站,Weather-O-Rama气象站希望能有一组API,好让其他开发人员可以写出自己的气象布告板,并插入此应用中。 接下来看We原创 2011-05-05 22:35:00 · 1694 阅读 · 0 评论