![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA设计模式
文章平均质量分 70
蓝朋友丶
这个作者很懒,什么都没留下…
展开
-
备忘录模式
备忘录模式:在不破坏封装性的前提下,破获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的对象。角色说明原发者:需要在某个时刻保存其状态的对象。原发者负责创建备忘录,然后使用该备忘录记录自己的状态。当原发者需要恢复某个时刻的状态时,它通过获得相应备忘录中的数据来恢复那个时刻的状态,备忘录:负责存储原发者状态的对象,创建备忘录的类和创建原发者的类在同一个包中,该类提供的访问数据的方法都是友好方法,使得只有和原发者在同一包中的类的实例才可以访问备忘录中的数据。负责人:原创 2021-06-13 21:10:18 · 9167 阅读 · 2 评论 -
模板方法模式
模板方法模式:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法是关于怎样将若干个方法集成到一个方法中,以便形成一个解决问题的算法骨架。模板方法模式的关键是在一个抽象类中定义一个算法的骨架,即将若干个方法集成到一个方法中,并称该方法为一个模板方法,或简称模板。模板方法所调用的其他方法通常为抽象的方法,这些抽象方法相当于算法骨架中的各个步骤,这些步骤的实现可以有子类实现。角色说明:抽象模板:抽象模板定义了若干个方法以表示一原创 2021-06-13 16:38:44 · 9250 阅读 · 1 评论 -
状态模式
状态模式:主要用来解决对象在多种状态转换时需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像改变了其类。举例:人的一生。小的时候(假设是0~7岁)只能当幼儿园学生;青年时(假设是7 ~ 18岁)可以当初中和高中生,相应可以做的事情也变多了;成年时,可以做大学生,硕士生等等,做的事情变得更多了。状态模式的关键是将对象的状态封装称为独立的类,对象调用方法时,可以委托当前对象所具有的状态调用相应的方法,是当前对象看起来好像原创 2021-06-13 13:41:49 · 9252 阅读 · 1 评论 -
组合模式
使用背景:编写程序时,我们希望将许多个体对象和组合对象组成树形结构,以此表示“部分—整体”的层次结构,并借助该层次结构使得用户能用一致的方式处理个体对象和组合对象。组合模式使得用户对个体对象和组合对象的访问具有一致性,组合模式的关键在于无论是个体对象还是组合对象都实现了相同的接口都是同一个抽象类的子类。个体对象:一个对象不含有其他对象的引用,具有其他子节点的节点。组合对象:一个对象包含另外一个对象的引用,不具有其他子节点的叶节点。角色说明抽象组件(Component):接口或抽象类,定义了个体对象原创 2021-05-25 22:44:14 · 223 阅读 · 1 评论 -
单例模式
单例模式是关于怎样设计一个类,并使用该类只有一个实例的成熟模式,该模式的关键是将类的构造方法设置为private权限,并提供一个返回它的唯一实例的类方法(static方法)。只包括一种角色:单件类(Singleton),单件类只可以创建出一个实例。单例模式的特点:单件类中包含用自身声明的类变量,这个变量是单件类唯一的实例。单件类的构造方法访问权限是private。单件类负责创建自己唯一的实例,并提供访问该实例的类方法。单例模式的优点:单件类的唯一实例由单件类本身控制,所以可以很好地控制用户何原创 2021-05-20 13:39:26 · 116 阅读 · 0 评论 -
迭代器模式
文章转载自:https://blog.csdn.net/zhengzhb/article/details/7610745定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧:public static void print(Collection coll){ Iterator it = coll.iterator(); whil转载 2021-05-19 14:08:33 · 163 阅读 · 0 评论 -
迭代器模式
角色剖析:集合(Aggregate):一个接口,规定了具体集合需实现的操作。具体集合(ConcreteAggregate):具体集合是实现集合接口的类的实例,具体集合按着一定结构存储对象。具体集合应当有一个方法,该方法返回一个针对该集合的具体迭代器。迭代器(Iterator):一个接口,规定了遍历具体集合的方法。具体迭代器(ConcreteIterator):实现迭代器接口的类的实例,要保证遍历集合时,首次调用将按着集合的数据结构找到该集合中的一个对象,而且每当找到集合中的一个对象,立刻根据该集合的原创 2021-04-16 22:47:05 · 87 阅读 · 0 评论 -
设计模式 — 外观模式
定义:外观模式是简化用户和子系统进行交互的成熟模式,外观模式的关键是为子系统提供一个称作外观的类,该外观类的实例负责和子系统中类的实例打交道。当用户想要和子系统中的若干个类的实例打交道时,可以代替地和子系统的外观类的实例打交道,用户不必了解子系统中的细节。当系统需要进行分层设计时,可以考虑使用Facade模式,可以帮我们更好的划分访问的层次,还可以维护一个遗留的大型系统。角色分析:子系统(Subsystem):子系统是若干个类的集合,这些类的实例协同合作为用户提供所需要的功能,子系统中任何类都不包含原创 2021-04-09 11:24:03 · 162 阅读 · 4 评论 -
耦合度
软件工程中对象之间的耦合度就是对象之间的依赖性。对象之间的耦合度越高,维护成本越高。耦合性:是对模块关联程度的度量。耦合的强弱取决于模块间接口的复杂性,调用模块的方式以及通过界面传递数据的多少。模块间联系越多,其耦合性越强,同时表明其独立性越差。耦合分以下几种:内容耦合 > 公共耦合 > 外部耦合 > 控制耦合 > 标记耦合 > 数据耦合 > 非直接耦合内容耦合。 当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的原创 2021-04-08 18:51:06 · 3123 阅读 · 1 评论 -
适配器模式的三种实现方法
适配器模式的三种实现方法概述:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。角色:目标(Target):是一个接口,该接口是客户想使用的接口。被适配者(Adaptee):被适配者是一个已经存在的接口或抽象类,这个接口或抽象类需要适配。适配器(Adapter):适配器是一个类,该类实现了目标接口并含有被适配者的引用,即适配器的职责是对被适配者接口(抽象类)与目标接口进行适配。示例:类适配器模式目标接口:public i原创 2021-04-06 15:20:47 · 1021 阅读 · 1 评论