【笔记】设计模式2

Facade模式

Facade模式要求一个子系统的外部与其内部的通信必须通过一个统一的Facade对象进行。Facade模式提供一个高层次的接口,使得子系统更易于使用。

Proxy模式

代理模式,顾名思义:就是为其他对象提供一种代理以控制对这个对象的访问。

那我们在什么情况下不愿意让外部系统直接调用类,而非要经过代理呢?
大约有如下几种情况我们需要使用代理类

1.远程代理,作为远程对象在本地的代表。
2.虚代理,根据需要创建开销很大的对象。
3.保护代理,提供对原始对象的访问控制,比如权限控制等。
4.智能指引,比如第一次使用时分配内存,无引用时销毁等。

虚代理

 

虚代理是一种非常有用的模式。当中举一个文档中内嵌图片的例子,假设您的图片是在文档分页的后面,一开始您并不用直接载入图片,而使用一个虚代理物件,代替图片被载入,以 求开启一个文档的时候,速度能够加快。当您卷动文档至该显示图片的页数时,这时再载入图片。最常用到的,莫过于web页面中的图片加载了。比如淘宝网,一个网页中需要常常需要加载上百张图片,如此一来页面加载就变得非常慢。如果用虚代理模式,就可以动态加载页面,同时也免去许多不必要的流量。

Observer 模式

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新

1, 观察者(具体执行操作的对象,有多个) 
2, 被观察者(顾名思义是被观察的对象,如果该对象发生某些变化则通知观察者执行对应的操) 

 

Adapter 模式

将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

 

原文地址:https://www.cnblogs.com/nonkicat/p/2696167.html