设计模式

自己总结的设计模式,多多指教

模板模式
定义:父类定义流程子类去实现
解决问题:解决了代码的复用
例子:学校定义一套规章制度,学校里面的各个系都要遵守这一套规章制度
代码实现:首先写一个抽象类并在这个类中定义一套流程,子类继承这个抽象类并重写其中的方法
java代码中的实现:spring的dao层

观察者模式
定义:建立对象之间一对多的关系
解决问题:解决对象之间的依赖关系
例子:声感电灯,如果人发出声音,那么所有电灯就会亮
代码实现:1.创建一个被观察者 2.定义一个观察者的接口,观察者实现这个接口并重写其中的方法 3.当被观察者动作发生变化是就会通知观察者,并将观察者装入一个容器中
java代码中的实现:awt中的事件听

组合模式
定义:对象以树形结构存储
解决问题:解决数据结构中的树形问题
例子:古代的官场体系结构,皇帝下面有左右丞相,左丞相下面有太尉,右丞相下面有文武將
代码实现:1.定义一个Node节点,并声明添加节点的方法
2.定义枝Branch实现Node接口,重写添加节点的方法,用容器来装节点
3.叶子节点也实现Node接口并重写其中的方法,但是添加节点的方法在这里要抛出个自定义异常,因为
叶子节点下面是没有节点的
java代码中的实现:盘符下面有文件夹

命令模式
定义:一个行为对应一个对象
解决问题:只需关心行为,而不必关心具体实现
例子:坐电梯的时候,不管是往上还是往下都是只需要按按钮就可以了
代码实现:1.定义Command接口并声明一个可用于执行的方法execute()
2.定义实体类,并执行一系列方法
3.具体动作的命令实现Command接口重写execute方法,并在execute中调用实体类中的执行方法
4.外部调用的时候只需要调用execute方法就可以执行到所有的命令


代理模式
定义:为其他对象提供一种代理以控制对这个对象的访问
解决的问题:在处理复杂对象之前进行一些缓冲
代码实现:1.定义一个接口
2.代理类和实体类共同实现这个接口
3.客户段通过调用代理类来访问到实体类
例子:大型厂商在各个省市安置一些代理商,客户通过代理商买到该厂商的产品

责任链模式
定义:多个对象处理一个请求
解决问题:避免发送者和接受者间的耦合关系
代码实现:1.比如说定义Chain接口并声明next()
2.声明一个Handler类并声明一个属性用于保存客户端传过来的对象
3.每个处理请求的类都集成Handler类,通过其中的get方法来得到客户端传过来的对象,并调用
next()方法
例子:中央下达命令要改建某个区,于是这个命令会经过省在经过市最后才到达区执行

中介者模式
定义: 用一个中介对象来封装一系列的对象交互
解决问题:将对象与对象之间的一种一一依赖的关系变成中介者与多个对象之间的关系
代码实现:1.在责任链的模式上,将多个对象装入到一个容器当中,然后迭代容器,调用对象中的执行方法
例子:婚姻介绍所,两个完全无关的对象由婚姻介绍所来进行牵连

未完,待续。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值