- 浏览: 3124 次
- 性别:
- 来自: 北京
最新评论
文章列表
def test1(t='t', *args):
print ">>>> test1(*args)"
print '----',t;
for i in args:
print i;
def test2(t='t', **args):
print ">>>> test2(**args)"
print '----',t;
for i in args:
print "key=", i, & ...
通俗的理解一下观察者模式:当一个受观察对象发生改变时,则观察它的所有对象都跟着更新。应用场景如,天气信息改变时,各种显示设备都跟着更新。
主要类包括:主题接口(被观察者接口)、主题类、观察者接口、观察者类。
过程中,主题(被观察者)可以采用push数据方式让观察者更新,观察者也可以采用pull数据方式更新,主要看数据的安全性问题,以及各观察者需要的数据情况。
观察者模式可以自己单独实现,也可以采用java.util.Observer接口(观察者)和java.util.Observable类(主题,被观察者)来实现,但是后者在更新个观察者时,是不分先后顺序的,而自己实现的时候可以控制这个更新 ...
《head first》学习笔记
设计原则
第一个设计原则:
找出应用中可能需要变化之处,把他们独立出来“封装”,不要和那些不需要变化的代码混在一起。
如:将Duck类的fly()和quack()行为独立出来。
第二个设计原则:
针对接口编程,而不是针对实现编程。
将fly和quack分别设计成接口,Duck类不用实现该接口,而是由单独制造其他类专门实现接口,这个类称为“行为类”由行为类而不是Duck类来实现行为接口。
package net.roky.pattern.first;
public interface FlyBehavior {
public void fly( ...