![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GOF23
Gosions
这个作者很懒,什么都没留下…
展开
-
观察者模式Observer
观察者模式看一个类图:这里我们订阅者可以称之为观察者,需要给订阅的报社称之为目标核心:观察模式主要用于 1:N的通知。当一个对象(目标对象Subject)的状态发生变化时,他需要及时告知一系列对象(观察者对象),令他们做出响应。通知观察者的方式:推:每次都会把通知以广播的形式发给所有观察者,所有观察者真能被动接收。拉:观察只要知道有情况即可。至于什么时候获取内容,获取什么内容都自己决定JAVASE提供了java.util.Obserable和java.util.Observ原创 2020-06-09 11:40:04 · 186 阅读 · 0 评论 -
动态代理
动态代理和静态代理角色一样动态代理的代理类是直接生成的,不是我们直接写好的动态代理可以分为两大类:基于接口的动态代理,基于类的动态代理基于接口-----JDK动态代理【我们在这里使用】基于类:cglibjava字节码实现:javasist需要了解两个类:Proxy:代理,InvocationHandler:处理动态代理的好处:可以使真实操作更加纯粹公共也就交给代理角色!实现业务的分工公共业务发生扩展的时候,方便集中管理一个动态代理类代理的是一个接口,一般就是对应的一类业务一个动.原创 2020-06-07 20:41:22 · 185 阅读 · 0 评论 -
享元模式(Flyweight)
场景:内存属于稀缺资源,不要随便浪费。如果有很多个相同或相似的对象,我们可以通过享元模式,节省内存。核心:享元模式以共享的方式高效的支持大量细粒度对象的重用。享元模式能做到共享的关键是区分了内部状态和外部状态内部状态:可以共享,不会随环境变化而变化外部状态:不可以共享,会随着环境变化而变化**...原创 2020-06-07 12:10:52 · 171 阅读 · 0 评论 -
外观模式
基本介绍:外观模式(Facade)也叫“过程模式”:外观模式为是子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式通过定义一个一致的接口,用于屏蔽内部子系统的细节,使得调用端只需要跟这个接口发生调用,而无心关心这个子系统的内部细节先来看一看类图:我们的子系统集聚合了外观类,而我们的客户端直接找外观类即可。原理类图的说明(外观模式的角色分析):外观类(Facade):为调用端提供统一的调用接口,外观类知道哪些子系统负处理责请求,原创 2020-06-05 11:27:50 · 185 阅读 · 0 评论 -
静态代理模式
为什么要学习代理模式?因为这就是SpringAOP的底层!代理模式的分类:静态代理动态代理静态代理角色分析:抽象角色:一般会使用接口或抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些客户:访问代理对象的人代码步骤:接口//租房public interface Rent { void rent();}真实角色public class Host implements Rent { @Overri原创 2020-05-30 10:21:27 · 202 阅读 · 0 评论 -
桥接模式
桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立变化他是一种对象结构型模式又称为柄体模式(Handle and Body) 或接口模式看图:这是一个多继承的关系,加我们再来一个小米电脑,那我们都要在每个电脑下加一个小米电脑。违反了我们的单一职责原则我们先看代码演示:定义一个品牌接口//品牌public interface Brand { void info();}写一个苹果品牌//苹果品牌public class Apple implements Brand.原创 2020-05-29 15:35:47 · 137 阅读 · 0 评论 -
适配器模式
先来聊一聊结构性模式。我们都知道创建型模式有五个:单例模式,工厂模式,抽象工厂,原型模式,建造者模式那结构型模式有七个:适配器模式,桥接模式,装饰模式,组合模式,外管模式,享元模式,代理模式。我们先来看一看适配器模式吧比如一个USB转换接口,我们笔记本必须要插入转换器。如图:现在大脑里应该有三个类了,一个网线接口类,一个笔记本类,还有一个USB转换类先看代码:先来写一个网线的类public class Adaptee { public void request(){原创 2020-05-28 19:18:14 · 160 阅读 · 0 评论 -
建造者模式
建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式。定义:将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。主要作用:在用户不知道 对象的建造过程和细节 的情况下就可以直接创建复杂的对象。用户只需要给出指定复杂对象的类型和内容,建造者模式复杂按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)案例:假设造房简化为如下步骤:1.地基 2.钢筋工程3.铺电线4.粉刷如果要盖一座房子,首先找一个建筑公司或工程承包商(指挥者),承包商指挥工人..原创 2020-05-28 16:40:43 · 197 阅读 · 0 评论