
设计模式
merlinlock
www.funnyweb.top 记录有趣的网站
展开
-
设计模式—六大原则
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问...原创 2019-05-27 09:49:44 · 132 阅读 · 0 评论 -
设计模式—享元模式
之前在讲单例模式的时候,我就提到过单例模式和享元模式很类似,今天我们就来讲一讲享元模式。 享元模式其实理解起来很简单:能共享的共享(一个实例对象),不能共享的自用(多个实例对象) 再次强调:依赖倒转原则 享元模式很像现在养二胎。 假设现在你有两个孩子,一个七岁,一个五岁。那么七岁孩子的衣服,玩具就可以和五岁的孩子共享,不需要买新的。但是吃的零食则需要额外进行购买,这些是不能共享也无法共享的。 ...原创 2019-06-04 09:43:22 · 114 阅读 · 0 评论 -
设计模式—备忘录模式
假期;两天没有更新,因为懒! 今天我们来了解备忘录模式。 其实在备忘录模式里面,当你的状态只有当前与之前两种的时候,Caretaker其实可以没有,直接由Memento来进行set与get的操作就可以了。 备忘录模式和我们在现实里面的备忘十分相似。 或者说和存档十分的相似。 一个备忘录(存档)需要有获取存档,设置存档的基本操作(Originator)。而存档这个本身的档案需要有一系列的数据单...原创 2019-06-10 09:43:12 · 179 阅读 · 0 评论 -
设计模式—中介者模式
在之前,我们讲述了代理模式,今天我们将讲解一下中介者模式。 依旧是一个提醒: 依赖倒转原则 中介者模式其实和代理模式很像,都是通过一个额外的类进行调用。 中介者模式其实和字面的意思听起来很是相似,例如你买房子找中介,你和卖房子的人之间的交互都是通过中介来实现的,中介者模式也是这样。即当一个非中介者想要和另一个进行交互的时候,它需要通过调用中介者进行。 所以在类里面,两个非中介者需要知道中介者这...原创 2019-06-03 10:17:29 · 161 阅读 · 0 评论 -
设计模式—组合模式
端午快乐!!! 过节,所以晚了点。 今天我们讲组合模式! 组合模式看起来是不是觉得和建造者模式很像! 确实很像,但是却不是。 建造者模式像是一个端午节粽子礼包,你用肉粽子,甜粽子等等将这个礼包装满了,这是建造者模式。 而组合模式则是你在网上统一挑选粽子礼包,虽然都是粽子礼包,但是礼包分为不同的种类,不同种类的礼包组合成了名为粽子礼包的大选项。 套用书本的知识: 组合模式,有点树的意思。 ...原创 2019-06-07 23:11:59 · 170 阅读 · 0 评论 -
设计模式—代理模式
废话不多说: 什么是代理模式?代理在百度解释里面的意思:暂时代人担任 某单位的负责职务,因此显然意见,被代理者的功能代理者都需要拥有。同时使用者直接面对的是代理者而不是具体的被代理者。 依赖倒转原则:依赖接口编程! 对象抽象类: interface Subject{ request(); } 被代理类: interface ConcreteSubject implements Su...原创 2019-06-02 10:37:41 · 117 阅读 · 0 评论 -
设计模式—命令模式
废话不多说: 命令模式顾名思义:就是通过命令来进行方法的调用,业务的处理。 看以上的uml图,你会觉得十分难看懂,一个简单的命令怎么生出那么多东西呢!!!! 其实我一开始也没看懂,看到代码后也觉得是脱裤子放屁——多此一举。现在我也觉得是这样。 我来用自己的思考来讲一讲命令模式: 1.既然是命令那么,自然有命令类(Command) 2.使用命令的人需要知道有什么命令 3.命令需要被处理(Rece...原创 2019-06-06 11:51:49 · 157 阅读 · 0 评论 -
设计模式—观察者模式
观察者模式,对于前端的朋友这个词估计会听到很多,毕竟vue就是运用了观察者模式。 依旧是老样子,定义,uml图: 依旧是老生常谈的一个概念:依赖倒转原则(依赖接口进行编程) 在写代码之前,我们先来聊聊观察者模式,这样便于理解。 根据定义,我们可以看到在观察者模式里面一共有两个角色,一个是被观察的对象,一个是观察对象。当被观察的对象某些状态发生改变的时候它要去通知观察的对象,让观察对象进行相应的...原创 2019-06-01 10:58:55 · 137 阅读 · 0 评论 -
设计模式—建造者模式
建造者模式属于创建型设计模式,它还是为了用来创建一个对象。 首先来看看它的定义: 然后我们来看看它的UML图: 在这里我们继续强调为什么会有一个Builder抽象接口,因为根据依赖倒转原则,我们应该面向接口编程。 建造模式就相当于搭积木,你想得到一个具体的东西,比如一个积木大楼,那么你就要一部分一部分的先建造然后整合在一起称为一个积木大楼。 在建造模式使用的时候,我们应该知道最后我们需要的实例...原创 2019-05-29 10:22:31 · 137 阅读 · 0 评论 -
设计模式—原型模式
原型模式依旧属于创建者模式 依旧先看定义,在看UML图 是不是感觉看起来很蒙逼?其实原型模式最重要的就是克隆这个操作了。 原型模式创建一个对象的方式不是new而是实例对象本身的复制!(这里和JS中的prototype有些不同) 来看代码吧先: 原型类的接口(依赖倒转原则:依赖接口编程): interface Prototype{ Prototype clone(); } 原型的具体...原创 2019-05-31 09:53:01 · 122 阅读 · 0 评论 -
设计模式—状态模式
老样子: 其实状态模式怎么说呢: 就是这样,当然你也可以写上千行的if语句,不过很难维护啊!!!! 继续提示:依赖倒转原则 状态抽象类: interface State{ static handle(String state); } 具体实现了: ConcretreStateA implements State{ static handle(String s...原创 2019-06-05 11:18:50 · 153 阅读 · 0 评论 -
设计模式——单例模式
设计模式分为两种类型: 1.创建型模式:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 2.结构型模式:这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 单例模式属于创建型模式 首先我们来看看单例模式的定义: 通过类的方法获取到唯一的一个实...原创 2019-05-28 09:34:08 · 107 阅读 · 0 评论 -
设计模式—工厂模式与抽象工厂模式
工厂模式与抽象工厂模式都属于创建型模式 两者一般会在书籍里面分开来讲,但是我觉得两者其实在本质上没有什么大的区别,反而有一种互通的地方,因此我们会把它们放在一起。 老样子,我们来看他们的定义与UML图。 看出来有什么相似的地方了么? 其实两个模式都是一样的,只是抽象工厂模式将抽象更进了一步,什么都用抽象,在具体的客户端调用的时候也用抽象来调用。而工厂模式就是有什么用什么,不来虚的。 继续提...原创 2019-05-30 09:36:07 · 173 阅读 · 0 评论 -
设计模式—策略模式
今天我们来讲策略模式: 策略模式就是见人说人话,见鬼说鬼话。 不同的情况下,用不同的算法(实例) 统一的情景接口: interface Strategy{ say(); } 说人话与说鬼话情景以及操作: //见人情景 class StrategyPerson implements Strategy{ say(){ return "人话"; ...原创 2019-06-11 19:23:39 · 165 阅读 · 0 评论