摘要: 人愤怒的时候会想打人,高兴的时候想笑,人的状态执行了不同的方法,程序也是一样,程序也有状态。当一个方法里需要多个if else来判断逻辑的时候就要注意到,当对象的状态很多时,程序会变得很复杂,而且添加新状态就会增加新的if else语句,大大违反了开闭原则 我们可以使用状态模式,来为程序定义不同的状 阅读全文
posted @ 2020-04-28 11:40 Vinlen 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 最典型的就是击鼓传花了,一个传一个,等到适合的人接到。在程序里就是请求者不可以和多个接收者耦合在一起,将所有请求的处理者根据前一对象记住下一个对象的引用形成一条责任链,将请求沿着责任链传递,一直到负责处理请求的对象出现 责任链模式有三个角色,抽象处理者,具体处理者,客户类。抽象处理者定义一个处理请求 阅读全文
posted @ 2020-04-28 11:01 Vinlen 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 先看一下策略模式的三个角色: 抽象策略:仅提供一个抽象方法,环境类调用抽象策略的方法,根据实际应用情况由适合的具体策略对象去实现 具体抽象:负责实现抽象策略定义的接口 环境类:环境类负责引用抽象策略,并交给客户端来使用。 简单来说就是客户端调用环境类,环境类调用抽象策略,具体的算法由不同的具体策略来 阅读全文
posted @ 2020-04-28 10:17 Vinlen 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 树枝和树干组成了树,就用树枝和树干来讲解一下组合模式。 一个组合模式有3种角色,抽象构件,类似于树干,定义了基本方法;树枝构件,用于管理树叶;树叶构件,用于具体实现。 先来看一个例子 学生: interface Student { void add(Student s); void remove(S 阅读全文
posted @ 2020-04-28 09:45 Vinlen 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 享元模式:相同的对象只保存一份,降低了因为大幅创建相同对象来对系统的额外开销 享元模式分为4个角色,非享元对象,抽象享元角色,具体享元角色,享元工厂。非享元角色是享元角色的一个参数,如果需要经常需要调用非享元对象,可能会创建很多的享元角色,这时候可以从享元工厂里获取具体的享元角色,使用一个map存放 阅读全文
posted @ 2020-04-28 08:57 Vinlen 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 先举例子:你去医院看病,普通的流程为挂号,看病,拿药,打针等等一系列步骤,如果说看病的窗口挪了一下,那你的路程也要改变,这就违反了开闭原则,所以有了外观模式,对外有一个统一的接口,类似于你进医院把你的症状告诉那个人,他会替你去挂号看病拿药等等,你只需要等他的反馈。先来看例子 挂号 public cl 阅读全文
posted @ 2020-04-27 11:35 Vinlen 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 有点难理解,主要有4个角色 抽象调用 具体调用 抽象实现 具体实现。大概的意思就是抽象调用调用抽象实现。由具体调用和具体实现来拓展功能 抽象实现 public interface Implemter { void implemt(); } 具体实现 public class ImplemterImp 阅读全文
posted @ 2020-04-27 11:12 Vinlen 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 先举例子,安卓的耳机怎么插Ios的手机? 淘宝有转接头,也叫适配器。当一个类想和另一个无关的类一起工作就需要适配器 安卓的耳机 public interface Target { void work(); } ios的插孔 public class Adapte { public void adap 阅读全文
posted @ 2020-04-27 10:53 Vinlen 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 作为aop的实现技术支持,代理模式应该是最被人熟知的,代理模式用大白话来说,类似一个中介,可以进行方法的增强或者修改(Ps:我觉得静态代理模式和命令模式好像,命令模式也可以在具体命令类里调用接收者前后进行环绕增强,只不过无法修改方法只能进行拓展) 当我们不方便直接调用一个类的时候 可以使用代理模式, 阅读全文
posted @ 2020-04-27 10:23 Vinlen 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 首先,先讲一下权限符,+表示Public #表示protected -表示private 默认的权限不表示 在UML图里,任何一个java类都可以用三层来表示,第一层表示类名,第二层表示参数,第三层表示方法。 类名中 正常字体表示正常类,斜字体表示抽象类,正常字体类名上标记《interface》为接 阅读全文
posted @ 2020-04-27 10:00 Vinlen 阅读(488) 评论(0) 推荐(0) 编辑