设计模式
文章平均质量分 60
高某某。。
这个作者很懒,什么都没留下…
展开
-
调停者模式
首先,调停者模式相当与各个组织之间的一种独立出来的组织,为了让我们更加好的处理复杂的逻辑关系,解开各个组织之间的耦合。uml图如下举一个例子:比如一个公司有人事部,财务部,技术部,营销部,比如说人事部想要处理一件事情,它去找财务部,财务部又让你去找技术部,但是生产技术部又让你去找营销部,最后经历了很多流程才完成了一件事情,这个时候如果又一个中间的调停者,你把这件事情交给他,那么它就可以帮你去做剩下的事情,那该多好。代码如下:调停者的父类接口://调停者的接口public interface M原创 2022-03-17 10:39:43 · 802 阅读 · 0 评论 -
桥接模式-Bridge
桥接模式—将抽象部分与它的实现部分分离,使他们可以独立的变化。这样大家可能不太清楚 这下我们举一个例子来表示一下,在我们的wps文档中,由于在不同的操作系统中,我们需要做的操作时不同的,因为操作系统定义的底层接口不同,所以会有不同的操作,接下来使用我们的桥接模式。下面附上一张图:我们的window对象下有许多的子类,他们是不同的窗口类型,比如图标,对话框等。接下来我们给出一个简单的实现:1.先写出Window窗口类和它的实现子类: (记得看一下我的注释)//窗口类的父类public inter原创 2021-12-26 11:23:22 · 492 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式 --意图是为了提供一个接口创建一系列相关或者相互依赖对象,无需指定他们具体的类。这个模式理解起来比较简单 接下来我们举一个例子来展示一下这个模式:如果我们的wps文档需要一种可以更换皮肤的类,里面具有不同种类的风格各异的皮肤,类似于不同种类的按钮的类型,滚动条的类型,如果我们不给用户提供一个结构来构建这一系列的类的话,用户可能难以知道我们给出了哪些类是这个皮肤风格。为了解决这个问题我们使用的抽象工厂模式。1.首先我们创建一个一堆按钮和滚动条的图元对象://所有按钮等组件的抽象父类p原创 2021-12-26 10:22:40 · 151 阅读 · 0 评论 -
装饰者模式-Decorator
装饰者模式,首先我们要了解,这个设计模式的使用的意图是什么,在设计模式这本书上这样描述的:动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更加灵活。也许我们有的人已经看过了代理模式了,(没看过可以直接略过,我只是简单提一下)那么你是否会感觉到代理模式和装饰者是否相似,确实他们都是在我们方法本来的工作上增加一些操作。在我看来他们之间的区别是装饰者模式需要我们来指定我们需要的添加操作,是一个动态并且主观的操作,而代理模式是在代码中写好了的操作我们在运行的时候无法去..原创 2021-12-01 16:45:20 · 105 阅读 · 0 评论 -
策略模式-Strategy
我们在做一些项目的时候经常会遇到有很多种类的算法的出现,它是针对我们同一个对象需要的不同的表现形式做出的处理。比如说在设计模式这本经典的书上写了一个问题,设计一个类似于wps的文档软件,我们遇到的一个文档结构的问题:我们在设计文档结构的时候,讲各种类型的文档结构,表格,文字,行列,等。通过组合模式来设计成了一个树状模型,如图设计好过后我们又有了一个问题出现了,格式化的问题,即如何对我们生成的文档进行我们指定的格式化。已知文档的格式化会涉及到不同的算法,我们的第一想法是在组合模式种最大的接口上设置一.原创 2021-12-01 11:57:28 · 105 阅读 · 0 评论 -
工厂方法模式
工厂方法模式,一个很简单但是却很常用的方法我们看一看在设计模式这本书上他的意图是为了干什么:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。如果不理解的话我们用一个例子看一看他使如何使用的:在我们的一个图片绘制系统里面,有一个图元对象 有一个画刷对象,画刷对象是为了填充图元内部对他填充不同的属性颜色等等,比如说在内部填充黑色等等,由于不同的图元填充的算法不同,所以说不同的图元需要不同的画刷我们需要想的是如何在不用运行时刻类型判断 来实现原创 2021-11-28 21:38:54 · 55 阅读 · 0 评论 -
访问者模式-visitor
访问者模式,一个很重要的模式,在学习java的过程中一定有地方遇到过访问者模式,但是不一定感觉到了它存在过。首先我们一个了解访问者模式到底实现了什么功能,它可以帮我们极大程度的避免了运行时刻类型判断,大家可能觉得这个不是很重要,但是这可以大大简化代码的功能的添加,让我们添加功能的时候不用去修改以前的源代码,这是非常重要的。在设计模式这本经典的书上写的访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。我们接下来看一看这个题 , 这是我们原创 2021-11-28 21:08:47 · 180 阅读 · 0 评论 -
组合模式--java
今天看了一下组合模式的设计 了解了一下组合模式到底是用来干什么的我们直接开始component (抽象构件:容器):它可以是接口或者抽象类,为叶子构建和子容器构建对象声明接口,在该角色中可以包含所有子类共有的行为的实现和声明。在抽象构建中定义了访问及管理它的子构件的方法,如增加子构件,删除子构件,获取子构件等。compsite(子容器构建):它在组合模式中表示容器节点对象,容器结点是子节点,可以是子容器,也可以是叶子构建,它提供一个集合来存储子节点。leaf(叶子构建):叶子构建没有子构件。它实现原创 2021-11-09 20:20:33 · 205 阅读 · 0 评论 -
adapter适配器模式
适配器模式是一个很简便的模式 它是实现什么功能的喃我们经常再交互程序的时候遇到用户所需要的数据和我们所给的数据不太匹配 那我们就直接对我们的接口进行重写吗 ,当然不行 对已经做好的接口进行修改很有可能牵一发而动全身 所以我们想要修改就可以通过适配器模式进行 数据的修改举一个例子 我们的家用电压是220v 但是我们手机充电时候却只想要5v 如果太多了可能对手机有一定的伤害 我们通过适配器模式来实现一下这是我们的数据源类 就是我们接口提供的数据/** * 需要被适配的类、接口、对象,即Datas。原创 2021-11-06 20:19:16 · 80 阅读 · 0 评论 -
观察者模式
所谓的观察者模式 就是被观察的哪一方的属性有了一定的变更 则观察方会有一定的反应是不是很熟悉 很像发布订阅 没错 它就是发布订阅模式设计模式这本书上明确的写了 他的别名就是发布订阅模式 我们说回正事情如果我们想要实现这个模式应该怎么办喃首先 我们需要接口 因为如果想要相互之间的通知 那么必须要有固定的方法来调用实现 通知功能可能还是优点懵 我们看代码这是我们的一个接口 大家想 如果我一个发布者如果想要我的信息修改以后 将修改的的信息同步到接收者应该怎么办 ? 办法就是接受者有一原创 2021-11-02 16:49:31 · 285 阅读 · 0 评论