读 HeadFirst 设计模式】的更多相关文章

以往虽也看过相关设计模式的书籍,但能和与HeadFirt设计模式这本书相比不是缺乏严谨性就是缺乏具体应用实例,还有幽默生动以及引人启发的观点. 设计原则 设计原则并不能光靠死记硬背,我们需要通过具体的设计模式来反思:该模式符合与违背了哪些设计原则. 不过在进入下文讨论之前,让我们先大概看看设计原则都有哪些. 封装变化 针对接口编程,而不是实现 多用组合少用继承 松耦合 对修改关闭,对扩展开放 依赖抽象不依赖具体 最少知识原则:只和亲密对象交谈 好莱坞原则:别打电话给我,我会打给你 单一职责 谈谈…
有些人已经解决你的问题了 什么是设计模式?我们为什么要使用设计模式?怎样使用?按照书上的说法和我自己的理解,我认为是这样的:我们遇到的问题其他开发人员也遇到过,他们利用他们的智慧和经验将问题解决了,把他们解决问题的方法提炼总结出来使其能解决其他同类问题.使用设计模式是为了更方便快捷的解决问题.把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用这些模式,以往是代码复用,现在是经验复用. 先把书上的例子过一遍,简单的鸭子模拟应用 Joe所在的公司决定开发一款模拟鸭子的应用.系统中有各种…
继承可以在复用父类代码的情况下扩展父类的功能,但同时继承增加了对象之间的耦合度,所以要慎用继承.那么有没有既能扩展父类的功能,又能使对象间解耦的方法呢?答案是肯定的,这就是我们今天要学习的装饰者模式.待会你会看到我会用装饰者模式组装一台电脑.不过现在还是先把书上的例子学习一下. 学习书上的例子 Starbuzz咖啡店的系统需要更新一下,他们原来的系统是这样的: 可以看到,顾客购买饮料时有具体的子类提供并返回饮料的价格.购买咖啡时,可以在其中加入一些调料,比如蒸奶(Steamed Milk).豆浆…
每次写博客都不知道要怎么引入要写的主题,挺头疼的一件事.今天就直接开门见山,今天要学的就是工厂模式,工厂就是批量生产制造东西的地方.在这里,工厂就是批量生产对象的地方. 学习书上的例子 假如你现在有一个披萨店PizzaStore,店里有各种各样的pizza,现在你需要根据订单生产pizza,可能会这样做 public Pizza orderPizza(String type) { Pizza pizza = null; if (type.equals("cheese")) pizza…
上次学习了策略模式,这次来学习观察者模式.这次先把书上的例子学习一下,然后再自己写一个例子,看是否能做到举一反三(或者说触类旁通),不过要想真正的掌握还要多多思考和练习. 学习书上的例子 现在我们有一个任务,需要根据天气状况来发布不同的布告,开始有3个布告板:当前状况,气象统计,天气预报.像这样的: 现在有一个天气情况的类WeatherData,可以设置和获取温度temperature,湿度humidity和气压pressure数据.要在天气变化时通知布告板,布告板更新以显示不同的值.开始可能想…
最近看完了<HeadFirst设计模式>,GOF的<设计模式——可复用面向对象软件的基础>的创建型模式也读完了,经历了从一无所知到茅塞顿开再到充满迷惑的过程. 不得不说<HeadFirst设计模式>是一本非常好的入门书,每一章都是先提出问题,然后讨论.分析,引导出相应的设计模式,再一步一步的实现,幽默的语言和有趣的插图,让人轻松愉快的学习了一个模式.之前我对学习设计模式是有很大的畏难情绪的,上网一搜一看,妈个鸡,动不动就什么GOF什么23个设计模式,然后找个工厂方法或者…
原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证,然后将书上的内容和自己的总结一起分享出来,这样看书的效果就会有大大提升. 最近在看一本讲JAVA设计模式的书,本人是C#开发,并想将书上的内容转换成C#的,然后写到博客上,以后查阅也方便,大家也可以参考参考. 本篇是开篇,也是文章目录. 01.策略模式-上篇 02.单件模式 03.命令模式 参考文…
前言 最近在学习<Headfirst设计模式>,里面的例子都是Java的.但是我对Java并不熟悉,所以试着用C++来实现书中的例子. 先来看看Duck以及子类 Duck.h #include <iostream> #include "FlyBehavior.h" class Duck { private: FlyBehavior *m_p_fly_behavior; public: virtual void quack() { std::cout <&l…
HeadFirst设计模式读书笔记(1)-策略模式(Strategy Pattern) HeadFirst设计模式读书笔记(2)-观察者模式(Observer Pattern) HeadFirst设计模式读书笔记(3)-装饰者模式(Decorator Pattern)…
定义 观察者模式(有时又被称为发布(publish)-订阅(Subscribe)模式,在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知.这通常透过呼叫各观察者所提供的方法来实现.此种模式通常被用来实现事件处理系统(摘自百度百科). 关键词:发布-订阅 为什么只有一个关键词?因为我觉得一个关键词足够说明问题了.观察者模式适用于,一个对象改变时,需要通知一个或多个其他对象,而需要通知的对象的特点是:数量不清楚,类型不清楚(仅实现了一个通用接口),具体处理方…