设计模式
文章平均质量分 68
橘子c123
这个作者很懒,什么都没留下…
展开
-
java-观察者模式
观察者模式 什么叫做观察者模式: 举个例子吧,以前读书的时候上课玩游戏,聊天,撩妹的是不是担心班主任来巡查,这时候是不是会叫一个人去观察班主任来没来?这里的上课开小差的是被通知的人,看班主任来没来的是观察者,同时他需要负责通知开小差的人。班主任是被观察的人。这就是一个很典型的观察者模式。 何时使用: 当一个对象的改变对其他多个对象有影响的话,就可以考虑使用。 注意: 1.避免观察者和观察目标之间循环引用导致系统崩溃 2.如果顺序执行,某一观察者错误或者超时会导致系统卡壳,一般采用异步方式 代码示例: /**原创 2021-02-20 17:04:49 · 92 阅读 · 0 评论 -
java-装饰者模式
装饰者模式 介绍: 简单点来说,就是为这个对象动态的赋予它其他的功能。 装饰者模式是动态的将责任附加到对象上(引自《Head First设计模式》)。这里的重点在于动态这两个字,我们都知道继承的实现的方式,它是是类编译的时候就去加载文件,属于一种静态的附加,而我们要实现动态的附加就不能单纯的通过继承来实现。在这种背景下,装饰者模式就应运而生了。装饰者模式的实现:首先所有的类都有一个共同的抽象,这个抽象可以是一个抽象类,也可以是一个接口,所有的类该抽象的子类或者实现。 举例: 我们给一个人添加一下他的穿着。原创 2021-02-07 16:10:06 · 93 阅读 · 0 评论 -
java-模板模式
模板模式 介绍: 先定义某件事的步骤,不同的人根据自己的情况来实现不同的操作,比如说早上起床步骤是起床,穿衣服,刷牙,洗脸,穿鞋,同样的步骤不同的人可能穿衣服就需要比其他人多一些时间,刷牙也可能比其他人少一些时间,这就是模板方法模式。 主要解决:一些方法通用,却在每一个子类都重新写了这一方法。 何时使用:有一些通用的方法。 如何解决:将这些通用算法抽象出来。 关键代码:在抽象类实现,其他步骤在子类实现。 优点: 1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。原创 2021-02-05 15:48:47 · 95 阅读 · 0 评论 -
java-代理模式
代理模式 什么叫做代理: 举个例子你叫你朋友(委托类又名代理类)给你(被代理)带饭,然后你朋友出去吃饭的时候顺带给你带了,这时你在宿舍bb说要他给你带个饮料。这时你朋友就还忍了给你带了饮料,但是你不满足你还要让他给你带个手抓饼,这时你朋友就不能忍了,说老子不干了,给爷爬。 现在我们分别用静态代理和动态代理来实现这个需求 一、静态代理 代理接口: /** * 带东西 */ public interface TakeSomething { void take(); } 代理类: /** * 代原创 2021-01-22 15:17:36 · 111 阅读 · 0 评论 -
java-责任链模式
责任链模式 每个类都有是否可以处理它的任务方法,如果不能就将任务转到下一个类,以此类推所有的类组成一个链。(官方一点的话:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。) 主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。 何时使用:在处理消息的时候以过滤很多道。 如何解决:拦截的类都实现统一接口。 优点: 1、降低原创 2021-01-21 15:36:54 · 105 阅读 · 0 评论 -
java-建造者模式
建造者模式 前言 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 一、简介 1、定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2、主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。 3、如何使用:用户只需要给出指定复杂对象的类型和内容,建造者模式转载 2021-01-18 12:00:44 · 91 阅读 · 0 评论 -
java-工厂模式
工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 介绍 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象转载 2021-01-18 10:08:31 · 79 阅读 · 0 评论