11 2021 档案

摘要:概念 迭代器主要用在集合的遍历。我们无需关心集合的底层是什么数据结构,直接使用集合中的迭代器即可达到遍历的效果。 不是有for循环吗?为什么还需要迭代器? 迭代器更像是面向对象的方式,用户只需关注拿到迭代器这个对象,就可以使用迭代器遍历这个对象的内部数据 实现方式 /** * 迭代器 */ publ 阅读全文
posted @ 2021-11-30 17:59 、嘎路的米。 阅读(49) 评论(0) 推荐(0)
摘要:概念 对一个对象生成一个新的代理对象,代理对象具备原对象的功能,且能对原对象的功能进行增强。很像装饰模式,但是装饰模式只是把对象的某个方法进行增强,而代理模式把整个对象的所有方法都增强。 例如:每个人都会睡午觉,也会睡晚觉。我现在希望每个人睡午觉的前后都刷牙,睡晚觉的前后也都刷牙 实现方式 JDK代 阅读全文
posted @ 2021-11-30 17:45 、嘎路的米。 阅读(55) 评论(0) 推荐(0)
摘要:概念 享元模式用于减少创建对象的数量,以减少内存占用和提高性能。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 享元模式用得比较多的是池化技术,如常量池,线程池,连接池等等。 java中的常量池使用的就是享元模式。比如String s = "abc",会先去常量池中找是否有"a 阅读全文
posted @ 2021-11-30 17:30 、嘎路的米。 阅读(59) 评论(0) 推荐(0)
摘要:概念 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。组合模式说白了就是一个树形结构。如某商城的商品分类,如省市区等结构,这些都是树形结构,都属于组合模式。 实现方式 import java.util.ArrayList; import java.util.List; /** * 组合 * 阅读全文
posted @ 2021-11-22 10:47 、嘎路的米。 阅读(57) 评论(0) 推荐(0)
摘要:概念 定义对象之间的一对多依赖关系(一个被观察者,多个观察者),当被观察者的状态发生改变时,所有的观察者都得到通知。也称为发布-订阅模式。 吃蛙来哒需要在大众点评APP叫号排队,有A/B/C三人都在大众点评APP叫号,等待APP通知什么时候去吃蛙来哒。那么APP与A/B/C三人就形成了一对多的依赖关 阅读全文
posted @ 2021-11-22 10:37 、嘎路的米。 阅读(62) 评论(0) 推荐(0)
摘要:概念 责任链中,每个层级都有自己的上一个层级,当自己处理不了时,把任务丢给上级处理。 责任链有点类似于Http请求的转发功能。用户只需要关注直接和自己对接的人,无关心后边具体的流程 张三找A借100块钱,A自己刚好身上有100块,于是A就借给了张三。下次张三又来找A借10万块钱,由于A没有那么多钱, 阅读全文
posted @ 2021-11-22 10:09 、嘎路的米。 阅读(57) 评论(0) 推荐(0)
摘要:概念 装饰模式使用在不改变对象原有的功能基础上,对原有的功能进行增强。 例如:一个机器人只会扫地,我希望机器人在扫地的同时,它还能够唱歌。这种场景就很适合装饰模式,在不改变原有的功能基础上,对原有的功能增强 前提:装饰类与被装饰类都实现相同的接口。装饰类中有一个构造方法,构造方法中需要传入被装饰类。 阅读全文
posted @ 2021-11-22 09:57 、嘎路的米。 阅读(48) 评论(0) 推荐(0)
摘要:概念 中介者模式能减少对象之间胡乱无序的依赖关系,该模式会限制对象之间的直接交互,迫使他们通过一个中介者对象进行合作。 消息队列就是一个典型的中介者模式,A/B/C都可以往消息队列发消息,也可以接收消息队列的消息,A/B/C的合作必须通过消息队列来完成 想要相亲,必须找个媒婆,媒婆负责给两人搭线。如 阅读全文
posted @ 2021-11-22 09:52 、嘎路的米。 阅读(69) 评论(0) 推荐(0)
摘要:概念 去医院看病,可能要去挂号、门诊、划价、取药,让患者觉得很复杂。如果有提供接待人员,患者只要和接待员沟通,剩下的交给接待员来处理,这样就会方便很多。 再例如某商城展示的数据很多,前端可能调用10个接口才能拿到所有首页的数据。如果后台能前端提供一个接口,并在该接口中调用其他10个接口组装数据,再把 阅读全文
posted @ 2021-11-19 22:00 、嘎路的米。 阅读(45) 评论(0) 推荐(0)
摘要:概念 工厂类主要用来代替new对象,当需要一个对象时,直接从工厂中获取即可 实现方式 简单工厂 专门定义一个工厂类创建不同产品。可以根据参数的不同,创建不同产品对象。被创建的产品通常都具有共同的父类。 例如创建一个手机工厂,该工厂可以生产华为手机,也可以生产苹果手机,用户只需要传入不同的参数,即可获 阅读全文
posted @ 2021-11-19 21:26 、嘎路的米。 阅读(106) 评论(0) 推荐(0)
摘要:概念 人有开心和难过两种状态,当我开心的时候我就去上班,当我难过的时候我就不想上班,这种根据状态决定行为的方式,称为状态模式 实现方式 /** * 状态 */ public class Demo { public static void main(String[] args) { Person pe 阅读全文
posted @ 2021-11-19 20:46 、嘎路的米。 阅读(61) 评论(0) 推荐(0)
摘要:概念 如一个洗衣机有标准、快洗、浸洗、大件等等不同清洗策略。我们选择不同的策略时,洗衣机就以具体的策略去执行。我们无需关心策略的具体逻辑,只需要指定某个策略执行即可。 策略其实就是定义各种算法(如洗衣机各种清洗策略),将每个算法封装起来,当需要哪个算法时,就指定哪个算法执行。我们使用算法时,无需关心 阅读全文
posted @ 2021-11-19 20:36 、嘎路的米。 阅读(53) 评论(0) 推荐(0)
摘要:概念 单例模式让类只能new一个对象,使得每次从类中拿到的对象都是同一个对象。 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 实现方式 饿汉式 在成员变量中创建对象 /** * 单例-饿汉式 */ public class Demo { priv 阅读全文
posted @ 2021-11-19 20:10 、嘎路的米。 阅读(61) 评论(0) 推荐(0)