![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
yulongblue
这个作者很懒,什么都没留下…
展开
-
装饰者模式
设计原则:对修改关闭,对扩展开放以星巴克咖啡为例:1.拿一个深咖啡对象(DarkRoast)2.以摩卡(Mocha)对象装饰它3.以奶泡(Whip)对象装饰它4.调用cost()方法,并依赖委托将咖啡价格加上去装饰者特点:1.装饰者和被装饰者有相同的超类型2.你可以用一个或多个装饰者装饰一个对象3.既然装饰者和被装饰者有相同的超类型,所以在任何需要原始对象(被包装)的时候,可以用装饰过的对象代替它4.装饰者可以在被装饰对象包装之前或之后,加上自己的行为,以达到特定的目的 (关键点)5.对象可以在任何时候被装原创 2010-07-25 16:17:00 · 449 阅读 · 0 评论 -
桥接模式
<br />桥接模式:是抽象部分和实现部分分离,是他们可以独立的变化。原创 2010-08-04 16:12:00 · 239 阅读 · 0 评论 -
组合模式
<br />组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。原创 2010-08-01 20:05:00 · 234 阅读 · 0 评论 -
迭代器模式
<br />迭代器模式提供一种方法顺序访问一个聚合对象中的每一个元素,而又不暴露其内部表示。原创 2010-07-30 22:35:00 · 311 阅读 · 0 评论 -
模板方法模式
模板方法定义了一个算法步骤,并允许子类为一个或多个步骤提供实现。原创 2010-07-30 17:04:00 · 238 阅读 · 0 评论 -
外观模式
外观模式:定义了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。构造家庭影院外观public class HomeTheaterFacade{ Amplifier amp; Tuner tuner; DvdPlayer dvd; CdPlayer cd; Projector projector; TheaterLights lights; Screen screen; PopCornPop原创 2010-07-30 12:11:00 · 292 阅读 · 0 评论 -
适配器模式
例如:你需要在欧洲国家使用美国制造的笔记本,你就可能需要使用一个交流电的适配器。它位于美式插头和欧式插头中间,作用是将欧式插座转换成美式插座,好让美式插头可以插进这个插座得到电力。OO适配器和真实世界中的适配器扮演的角色一样:将一个接口转换成另外一个接口,以符合客户的期望。原创 2010-07-29 21:43:00 · 250 阅读 · 0 评论 -
命令模式
命令模式:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。public interface Command{ public void excute();}public class LightOnCommand implements Command{ Light light; public LightOnCommand(Light light){ this.light = light } @原创 2010-07-29 21:03:00 · 267 阅读 · 0 评论 -
23个设计模式UML图
<br />原创 2010-07-27 15:07:00 · 452 阅读 · 0 评论 -
单例模式
单例模式原创 2010-07-27 14:25:00 · 246 阅读 · 0 评论 -
工厂方法,抽象工厂模式
针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。因为,如果代码是针对接口编写,那么通过多态,它可以与新类实现该接口。工厂方法用来处理对象的创建,并将这样的行为封装在子类中。这样,客户程序中关于超类的代码和子类对象创建代码解耦了。工厂方法模式通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。原创 2010-07-26 14:41:00 · 267 阅读 · 0 评论 -
观察者模式
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并更新。观察者分为主题,观察者对象。public interface Subject{ public void registerObserver(Observer o);//注册观察者 public void removeObserver(Observer o);//删除观察者 public void notifyObservers();//通知观察者}public interfa原创 2010-07-25 10:01:00 · 271 阅读 · 0 评论 -
策略模式
设计原则一 找出应用中可能需要变化之处,把它独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其它部分。系统中某部分的改变不会影响其它部分。设计原则二 针对接口编程,而不是针对实现编程。“针对接口编程”真正的意思是“针对超类型编程”原创 2010-07-24 10:45:00 · 247 阅读 · 0 评论 -
责任链模式
责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。责任链模式由两个角色组成: 1) 抽象处理者角色(Handler):它定义了一个处理请求的接口。当然对于链子的不同实现,也可以在这个角色中实现后继链。 2) 具体处理者角色(Concrete Handler):实现抽象角色中定义的接口,并处理它所负责的请求。如果不能处理则访问它的后继者。public abstract class Handler{ protected Handler successor;原创 2010-08-05 16:11:00 · 314 阅读 · 0 评论