
模式
文章平均质量分 58
2579所以然
步履不停
合作 +V: yayali2579
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式--策略模式
Strategy Pattern简介策略模式言简意赅,就是策略。是对算法的封装。这样说着有些模糊,这个模式很简单,也有超多的变种。看代码比看文字描述更能体会。代码如下。图public interface BaseStrategy { int doOption(int a, int b);}public class StrategyAdd implements BaseStrategy{ @Override public int doOption(int a, int原创 2021-05-19 15:20:12 · 2152 阅读 · 0 评论 -
设计模式--中介者模式
Mediator Pattern中介者模式,又称调停模式了解这个之前建议了解一下迪米特法则,中介者模式就是迪米特法则的典型应用。我觉的这个法则更有学习价值!是碰到了什么问题,才出现的它举个简单的例子,假设写程序时候,需要维护一个数据,假设类, A, B, C,D,E 都会用到这个数据,并且都会修改这个数据。并且每一方修改数据的时候,其余的各类必须也修改这个数据并呈现不同的效果。那么最完蛋的一种写法就是,让ABCDE这几个类全部相互持有,每当任意一个修改数据的时候,就调用这几个类也去修改数据。这样效原创 2021-05-12 17:48:38 · 142 阅读 · 0 评论 -
设计模式--迭代器模式
IteratorPattern万万没想到,迭代器模式说的就是最最最平常用到的数组迭代!我之前还以为是啥高大上的东西呢。这个目前可以说是很熟了。但是我想其中包含的思想尽量了解一下吧。顿悟思想啊!thinking来来来,看看最最最普通的代码首先想一个问题哈!为什么源码有时候放着好好的for each 语句不让你用,偏偏“南辕北辙”似的让你取主动获取一个迭代器,然后自己再进行循环访问呢?public synchronized void removeCallback(Listener listener)原创 2021-05-12 17:46:55 · 281 阅读 · 0 评论 -
设计模式--解释器模式
Interpreter Pattern解释器模式简述解释器模式,我看了一些相关的文章,第一个感觉就是,不常用。另外一个感觉就是,这玩意儿解决的问题特别局限。也就是分析分析简单语句,写个脚本命令解析啥的。我工作几年,一次这种模式一次都没有用过。是碰到了什么问题,才出现的它假设目前有一个题目,给你任意一个a+b+c这类的字符串,比较简单,只有加减法。你得出正确结果!你自己设计一个算法吧。是任意长度欧!其实这就需要一个简单的解释器了,因为语句再长,实际上他们是符合一定规律的。解:// 抽象出来一个原创 2021-05-12 17:46:12 · 270 阅读 · 0 评论 -
设计模式--过滤器模式
Filter Pattern简介过滤器模式或者标准模式是一种设计模式,允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式将他们连接起来,这种设计模式数据结构性设计模式。他会结合多个标准来获得单一标准类图简介实现public class Person { private String name; private String gender; private String maritalStatus; public Person(String nam原创 2021-05-12 17:43:01 · 179 阅读 · 0 评论 -
设计模式--外观模式
Facade Pattern外观模式简介外观模式用以隐藏系统的复杂性,并向客户端提供一个可以访问的系统接口。这种接口属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简单方法对现有类的方法委托调用。介绍意图: 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决: 降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。何时使用:1 客户端不需要知道系统内部的复杂原创 2021-05-12 17:38:53 · 127 阅读 · 0 评论 -
设计模式--组合模式
组合模式组合模式,又叫部分整体模式,是用于把一组相似的对象,当做单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它提供了修改相同对象组的方式。介绍意图: 将对象组合成树形结构以表示”部分-整体“的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决: 它在我么的属性结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样处理复杂元素,从而使得客户程序的复杂元素的内部结构解耦。应用实例:s算术表达式包原创 2021-05-12 17:35:04 · 261 阅读 · 1 评论 -
设计模式--命令模式
Command Pattern命令模式我觉得我并没有找到很好的博客能够了解这个模式的本质简单来讲,命令模式,就是将命令与操作进行结合,并进行封装,最后形成一个对象一个对象这类的形式。以便于真实运行的时候,可以将这些命令以数据结构的形式进行存储,从而形成对命令的增删查改这类功能。其实在本质上,执行不同命令的角色,很可能是同一个对象,只不过是对这个执行对象进行了一个封装而已,其目的就是让这些命令具有可编辑性。是碰到了什么问题,才出现的它我认为这家伙顶多就能解决一些极其枯燥,很单元的,一些执行。至少现原创 2021-05-12 17:28:17 · 137 阅读 · 2 评论 -
设计模式--责任链模式
责任链模式责任链模式其实是很简单的,起码比享元模式简单的多。问题的提出网上有个特别普遍的例子,就是公司员工请假这个事儿。3天之内,直属上司可以批准,3天到5天,上司的上司批,如果是5天以上,直接CEO批。然后让你写代码,巴拉巴拉的。听到这个其实我想脑子中已经有一半的代码成品了吧。并且我已经在demo中写了一个最直接的例子。代码package com.example.pattern.ChainResponsbilityPattern.demo1;/**基类,留了一个处理接口。接收到参数的时候就处原创 2021-05-12 17:23:02 · 154 阅读 · 0 评论 -
设计模式--适配器模式
适配器模式主要作用解决接口之间的不兼容问题,用于包装不兼容的对象,使原本由于接口不兼容而不能在一起工作的哪些类可以在一起工作。分类类的适配器模式对象的适配器模式类的适配器模式类的适配器模式是把适配的类的API转换成为目标类的API对象的适配器模式对象的适配器模式,本质上也是一样的道理,但是不同的是,对象的适配器模式不是使用的继承关系链接到Adaptee类,而是使用委派关系连接到Adaptee类的。uml类的适配器class Adaptee { void specifi原创 2021-05-12 17:20:09 · 96 阅读 · 0 评论 -
设计模式--备忘录模式
MementoPattern Pattern简述备忘录模式通常用于解决用户回到操作的某个步骤这种问题。例如,一个简单的图片编辑器,用户一步步的处理某个图片,但是修着修着发现不对头,想要回退重新修。就不断的按撤销键。此时图片编辑器的内部状态是要一个个回退的,最终回退到用户最开始操作的某个步骤上。图片面板展示的样式也应该是回退之后的样子。这里面涉及到一个很重要的特点,就是“步骤!”。备忘录模式的关键也就在于对于步骤状态的存储。PS:对于回退,我记得之前也有一种模式也和回退有关。找了找,是命令模式。不过命令模原创 2021-05-12 17:03:39 · 185 阅读 · 1 评论 -
设计模式--建造者模式
建造者模式建造者模式是我之前有些不理解的模式,直到比着网上的demo抄的时候,也是不太理解的状态。但是当时就这么得过且过下去了,现在回顾过去,我这种学习方式是不行的,不理解,写过demo了就算作学会了?这样显然是不对的。不可以这么凑活下去了。学习这种东西不是做做样子而已。那么我之前不理解的是什么呢?我不理解他的使用场景, 我当时认为直接new一个也挺好的,反正都能完成功能,就行了呗。另外一点是,我感觉还要写一个builder真是麻烦。原因现在也大概清楚了, 就是我之所以这么想,是因为我的工作中暂且没有碰原创 2021-01-13 16:20:53 · 173 阅读 · 0 评论 -
面向对象原则--依赖倒置原则
依赖倒置原则我写这个自然段的时候,还没有具体的看依赖倒置的含义。也就是不知者,不知者就算理解错了也无罪哈哈。我现在有三个疑问, 何为依赖, 何为倒置(因为我感觉这个名字起得,有点让人不太好理解!), 依赖为何倒置?目前在我看来,依赖关系,是一个对象作为另一个类的某个方法的参数, 那么他俩是依赖关系。 那么倒置是什么含义?与我之前理解的是否有偏差?study…begin何为依赖倒置依赖这里的依赖并不是我之前想的,代码中的依赖关系。而是XXX做成什么事情需要用到ZZZ这种行为的抽象,在这个里面,X原创 2021-01-12 10:49:40 · 272 阅读 · 1 评论 -
设计模式--原型模式
文章摘录自:https://www.runoob.com/design-pattern/prototype-pattern.html原型模式全名:Prototype Pattern分类:创建型模式用途:用于创建重复的对象,同时能够保证性能,它提供了一种创建对象的最佳方式。介绍意图:实现对象的拷贝,用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。主要解决问题:在运行期间删除和建立原型主要思想:基于现有的对象克隆出一个新的对象出来,一般是有对象的内部提供克隆的方法,通过该方法返原创 2020-10-16 11:42:36 · 104 阅读 · 0 评论