你是否正在寻找关于head first设计模式的内容?让我把最有价值的东西奉献给你:

Head.First设计模式学习笔记
对象是什么?
--从概念层面讲,对象是某种拥有责任的抽象。
--从规格层面讲,对象是一系列可以被其他对象使用的公共接口。
--从语言实现层面讲,对象封装了代码和数据.
三大机制:
--封装,隐藏内部实现
--继承,服用现有代码
--多态,改写对象行为
设计原则:
1、封装变化。找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。
2、针对接口编程,而不是针对实现编程。(针对接口编程的真正意思是:针对超类型(supertype)编程,关键就在于多态)
举例说明:
假设有一个抽象类Animal,有两个具体的实现(Dog与Cat)继承Animal。

针对实现编程的做法:Dog d = new Dog();d.bark();
针对接口编程的做法:Animal animal = new Dog();animal.makeSound();
或者:Animal animal = getAnimal();animal.makeSound();
3、多用组合,少用继承,。
原因:
a、继承会使类无限膨大,可能会使类变得臃肿。
b、子类可能会继承父类中那些无用甚至有害的方法。
c、组合比继承更灵活,可以实现在执行中动态改变对象的功能。
4、为了交互对象之间的松耦合设计而努力。
5、类应该对修改关闭,对扩展开放。
6、要依赖抽象,不要依赖具体类。策略模式的结构(源自吕震宇 博客)

这个模式涉及到三个角色:
最初的策略模式是有缺点的,客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道所有的算法或行为的情况
2.观察着模式--定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新.
实现观察者模式的方法不止一种,但以包含Subject和Observer接口的类设计的做法最为常见
《Head.First设计模式》的学习笔记(3)--观察者模式(长空新雁的.Net世界)
设计模式随笔系列:气象站的故事-观察者模式(Observer)[原]
Subject(被观察的对象接口)
l 规定ConcreteSubject的统一接口;
l 每个Subject可以有多个Observer;
ConcreteSubject(具体被观察对象)
l 维护对所有具体观察者的引用的列表;
l 状态发生变化时会发送通知给所有注册的观察者。
Observer(观察者接口)
l 规定ConcreteObserver的统一接口;
l 定义了一个update()方法,在被观察对象状态改变时会被调用。
ConcreteObserver(具体观察者)
l 维护一个对ConcreteSubject的引用;
l 特定状态与ConcreteSubject同步;
l 实现Observer接口,通过update()方法接收ConcreteSubject的通知。
怎么样,现在总该有点感觉了吧?下面还有一个顺序图,再体会体会~

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-8633-1.html
有的1000块都还不一定能拍出这效果呢
快射炮