读书笔记(定期更新)"/>
HeadFirst读书笔记(定期更新)
发现一个网址:.html
设计模式入门——策略模式:
- 把会变化的部分取出并“封装”起来,以便日后可以轻易地改动。
- 针对接口编程,而不是针对实现编程。
Ⅰ、在鸭子行为中实现飞行接口这个实例中,鸭子的子类降使用接口所表示的行为
Ⅱ、Animal animal = new Dog(); animal.makeSound(); 多态的运用,利用多态,程序会在运行时才指定具体实现的对象。
Ⅲ、Duck类中声明接口,子类在构造器中对其接口进行实例化,利用多态可以动态指定不同的实现类。 - 多用组合,少用继承
观察者模式
- 观察者模式定义了对象之间的一对多依赖。
- 观察者模式设计思路:
Ⅰ、(接口)主题 Subject: registerObserver(Observer o ), removeObserver(Observer o );notifyObservers();
Ⅱ、(接口)观察者 Observer: update(…)
Ⅲ、(实现类)ConcreteSubject: 在构造器中新建一个ArrayList用来保存注册的观察者对象。
Ⅳ、(实现类)ConcreteObserver:构造器中加入Subject参数并调用其registerObserver方法注册当前类。 - java内置的观察者模式
java内置的观察者模式需要继承Observeable以及实现Observer。
需要注意的是:
可观察者送出通知需要先调用setChanged();然后再使用notifyObservers();
由于Observerable是一个类,当某类需要同时具有这个类和另一个超类的行为,就会引发问题,如果无法满足你的需求你就要像2中所提到的方法实现。 - 在android的Button.setOnClickListener(new OnClickListener)就是用到观察者模式;
装饰者模式
- 开放关闭原则
类应该对扩展开放,对修改关闭。但是如果每个地方都采用开放-关闭原则是一种浪费,还会导致代码变得复杂难以理解。 - 装饰者可以在所委托被装饰者的行为之前或者之后加上自己的行为
- 装饰者和被装饰者必须是一样的类型,因此装饰者类必须继承被装饰者的超类
更多推荐
HeadFirst读书笔记(定期更新)
发布评论