3.行为型模式
来源:互联网 发布:win10有线网络设置 编辑:程序博客网 时间:2024/05/21 01:46
责任链模式(Chain of Responsiblity Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Interator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
当对象一对多关系时,其中某个对象被修改时,则自动通知它依赖对象。
定义对象一对多关系依赖关系,一个对象状态发生改变,所有依赖于他的对象得到通知并被自动更新。1.Subject类创建public class Subject{ private List<Observer> observers=new ArryList<Observer>(); private int state; public int getState(){ return state; } public void setState(int state){ this.state=state; notifyAllObserver(); } public void attach(Observer observer){ observers.add(observer); } public void notityAllObserver(){ for(Observer observer:observers){ observer.update(); } }}2.创建Observer类public abstract class Observer{ protected Subject subject; public void update();}3.创建实体观察者类public class BinaryObserver extends Observer{ public BinaryObserver(Subject subject){ this.subject=subject; this.subject.attatch(this); } @override public void update(){ System.out.println("Binary String"+Integer.toBinaryString(subject.getState())); }}public class OctalObserver extends Observer{ public OctalObserver(Subject subject){ this.subject=subject; this.subject.attach(this); } @override public void update(){ System.out.println("Octal:"+Integer.toOctalString(subject.getState)); }}public class HexaObserver{ public HexaObserver(Subject subject){ this.subject=subject; this.subject.attach(this); } @override public void update(){ System.out.println("Hexa:"+Integer.toHexaString(subject.getState())); }}4.ObserverPatternDemo.javapublic class ObserverPatternDemo{ public void static main(String[] args){ Subject subjec=new Subject(); new BinaryObserver(subject); new OctalObserver(subject); new HexaObserver(subject); subject.setState(11); }}
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)
1 0
- 3.行为型模式
- 行为型模式
- 行为型模式
- 行为型设计模式
- 行为型设计模式
- 行为型-策略模式
- 行为型-观察者模式
- 行为型模式
- 行为型模式
- 行为型模式
- 行为型模式总结
- 设计模式-行为型
- 行为型设计模式
- 行为型模式-观察者
- 行为型模式-策略
- 行为型模式总结
- 行为型模式
- 行为型模式-命令
- php开发一个守护进程
- 管理工具和java操作redis
- unity手动拖拽播放视频的bug小结
- 2017ACM省赛总结
- LMAX简介
- 3.行为型模式
- 永坤电机SEO三天两夜课程学习总结
- java JDBC 通过物理连接数据库和通过获取数据库连接池进行链接
- python、pip安装
- Spring类PropertyPlaceholderConfigurer的作用(较全)
- LightOJ
- 博客开篇语
- ios
- c#,winform实现获取当前经纬度坐标(极其便捷)