
设计模式
文章平均质量分 76
云都小生
终身学习者。
展开
-
设计模式——工厂方法模式
@Author;云都小生回顾简单工厂模式 第一节我更新了简单工厂模式,特点就是实现了对象创建与客户端的分离,在创建对象的时候,我们只需要传入参数,就能获取到相应的对象。但是,简单工厂模式也有局限,它只能用于创建的对象比较少的情况。现在有这么一种情况,如果我想增加一个产品,那是不是就得修改工厂类里面的代码,我得在里面多加一个判断,如果符合这个参数,就生成相应的对象。Product product1;原创 2017-09-24 21:05:09 · 291 阅读 · 0 评论 -
设计模式——迭代器模式
作者:云都小生推荐学习资源 史上最全的设计模式导学目录十分推荐!概述 迭代器模式是比较容易理解,且使用频率非常高的一种设计模式,它的本质是实现了数据聚合对象的存储与遍历的解耦,使数据聚合不会暴露在数据操作方法面前。在现实的开发中,我们经常会碰到一种情况,我们需要存储许多的对象,有时候需要对这些对象进行遍历。一般去设计的时候,都是把存储和遍历两种功能放到同一个类中,但是这样会产生许多的问题。首先,原创 2018-01-16 16:24:24 · 388 阅读 · 0 评论 -
设计模式——命令模式(上)
作者:云都小生概述 命令模式是一种行为型模式,将请求以命令的形式封装在对象中,调用者将这些封装的对象传给具体的处理者,处理者执行相应的操作。命令模式的关键在于,它提供一种松耦合的设计关系,将请求者与处理者进行解耦。所以命令模式又有人称为“请求发送者与接受者的解耦”。设计框架 在命令模式中通常有这些角色:抽象命令类、具体命令类、请求者/调用者、处理者。命令模式原创 2018-01-08 14:38:41 · 365 阅读 · 0 评论 -
设计模式——命令模式(下)
设计模式——命令模式(下)作者:云都小生命令队列的处理 现实中有这么一种情况,我们墙壁上有一个按钮开关,这个开关按下去之后,就会打开厕所的电灯和排风扇。没错,在命令模式的设计过程中我们也会碰到这样的情况,我们的接受者并不只有一个,所以我们需要一个命令队列。先让接受者1进行处理,再让接受者2进行处理。class CommandQueue { //定义一个原创 2018-01-09 09:11:37 · 373 阅读 · 0 评论 -
面向对象设计原则
@Author:云都小生这篇文章几乎都是理论,所以,做好接受的心理准备···面向对象解决的问题 可扩展性、可维护性和可复用性,是面向对象要解决的其中几个核心问题。同时,面向对象设计还追求两个核心的点:高内聚、低耦合。面向对象设计的好处有很多,其中有一点体会:使用这种思想,能够更快的进行开发,更廉价的进行维护。今天我们需要了解一些面向对象设计中的基本原则,这些基本原则背原创 2017-10-18 23:07:58 · 320 阅读 · 0 评论 -
设计模式——备忘录模式
作者:云都小生推荐学习资源:史上最全的设计模式导学目录概述 许多软件都提供了这样一种功能——撤销,这是我们一直在用,且非常重要的一个功能。在软件设计中,我们通常也会设计这样一种功能,而“撤回”功能的一种实现机制就是——备忘录模式。备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。在备忘录...原创 2018-02-27 16:29:15 · 354 阅读 · 0 评论 -
设计模式——中介者模式
作者:云都小生推荐资料:史上最全设计模式导学目录(完整版)概述 在学习这个模式之前,我们先来回顾一下一个面向对象的设计原则——迪米特原则,这个原则告诉我们:一个对象尽可能少跟其他对象进行关联,就像一个人要少跟陌生人说话一样。而中介者模式,也正是为了协调多个对象之间复杂的引用关系。我们来看一个例子,虽然这个例子不太好,后期想个好一点的例子再改。中介者模式角色...原创 2018-02-23 23:16:27 · 342 阅读 · 0 评论 -
设计模式——观察者模式
作者:云都小生推荐资料: 史上最全设计模式导学目录前奏 各位小伙伴们,请想像一下,生活中是否有一种对象,它在状态在改变之后,其他的对象就会做出某些响应。以前很火的穿越火线,是一款第一视角的射击游戏,在游戏中,玩家可以进行组队的游戏。游戏为每个玩家提供了雷达,上面显示了各个队友的位置情况。一旦某个队友被射杀,其他各个玩家都可以从雷达上看到一个“X”的标记。这个时候...原创 2018-03-13 20:02:54 · 323 阅读 · 0 评论 -
设计模式——策略模式
设计模式——策略模式.md作者:云都小生引言 在某款游戏中,游戏角色所持的武器会根据它的等级去升级,一位普通程序员经过设计后实现了该功能,下面是精简版的代码。public class Soldier { private int level = 1; //等级 private String arms = "木棍"; //武器 pub...原创 2018-03-23 23:33:23 · 294 阅读 · 0 评论 -
设计模式——状态模式
作者:云都小生引言 在自然界中有一种动物叫变色龙,人们都普遍认为变色龙会根据环境去改变自己皮肤的颜色,其实那是误解。其实变色龙变色是根据自己的心情,当它示威时,体色会呈明亮色;当变色龙欲发动攻击时,体色会变很暗。在其他领域也有这种“状态”模式,例如水会根据温度变成冰或者气体,冰和水蒸气是水的不同状态。在软件设计中,也存在这种逻辑,某个对象会有不同的状态,同时,处于不同状态...原创 2018-03-22 00:38:52 · 349 阅读 · 0 评论 -
设计模式——模板方法模式
作者:云都小生概述 模板方法模式的内容,其实从一开始接触抽象类的知识时就有所涉及了。抽象类中可以定义具体的方法,也可以定义一些抽象方法。继承自该抽象类后,就会自动拥有具体方法,并且必须实现抽象类中的抽象方法。想一想,其实抽象类可以让我们实现一些“模板”,在这些模板中,我们可以先把所有子类都一样的方法写成具体方法,这样子类继承就能直接拥有。我们可以定义一些抽象方法,...原创 2018-04-10 13:42:18 · 246 阅读 · 0 评论 -
设计模式——访问者模式
作者:云都小生概述 在某个药业公司中,工作流程一般是这样。开单人员根据客户人员,写出一张订单,这张订单会先发到仓库人员的手中。仓库的人员根据订单的信息,准备好对应的产品,然后把订单给到负责财务的人员。财务人员根据订单的信息,检点产品数量是否到位、是否超出。最后根据订单信息计算出总金额,对数据库进行相应的操作···上面这个案例是我想的,只是为了用来引出访问者模式的概...原创 2018-04-18 22:11:42 · 384 阅读 · 0 评论 -
设计模式——职责链模式
@Author:云都小生(Cloudking)概述 不知道各位小伙伴有没有看过这种剧情,有个人在XX餐厅里吃饭,突然吃到了一些不该吃的东西(例如说铁丝,反正小生我是见得多了)。这个时候,计较的人呢马上就会大喊一声“服务员!”服务员走过来一脸懵逼,被臭骂了一顿,但是这还没完。顾客要求赔偿,这个时候就不是服务员能解决的问题了,得请经理出马了。但是这个顾客又有点过分了啊~ 提出了连经理都解决不了的问题,原创 2017-12-17 10:50:34 · 343 阅读 · 0 评论 -
设计模式——代理模式
Author:云都小生代理主要就是上下行的交互,上游认为代理是下游,下游认为代理是上游,通过代理来降低冗余。——玉涵概述 小生的朋友圈里,经常会有各种微商、广告的刷屏,但是也有人发这种“xxxx代购啦”。代购其实也算是代理的一种模式。客户通过代购人去买到自己买不到的东西。而在软件设计中,我们也会有这样一种情况:当无法直接访问某个对象或访问某个对象存在困难时,就可以通过一个代理对象来间接访问。你会不原创 2017-12-13 21:52:06 · 447 阅读 · 0 评论 -
设计模式——简单工厂模式
@Author:云都小生设计模式简述甄子丹与王宝强一起演的电影《一个人的武林》中,有这么一段话让我印象深刻——“先拳后腿次擒拿,兵器内外武合一”。由外到内修炼,内外结合方可小成。在软件开发领域,编程语言就相当于拳腿,各种开发工具就像是兵器,而这些东西都属于外功。那什么是内功呢?从数据结构到算法,从重构到设计模式等,这些都算是程序员的内功。拥有雄厚的内功,是所有武林人士的追求。从今天开始今天,我也要原创 2017-09-16 09:43:36 · 491 阅读 · 0 评论 -
设计模式——抽象工厂模式
@Author:云都小生工厂方法模式遗难 上一节我们说到工厂方法模式,我们来回顾一下它的缺点。如果增加一个产品,就需要增加一个新的工厂,然后添加一个新的产品类。如果需要越来越多的产品,就得有越来越多的工厂,这样势必会增加系统的开销。所以该到学习抽象工厂模式的时候了。两个被挖过来的概念 抽象工厂模式,其实就是对相关的产品进行分类,把一些具有相关性的产品组合起来,由一个...原创 2017-09-27 21:14:41 · 324 阅读 · 0 评论 -
设计模式_单例模式
在分享今天的笔记之前,我得先澄清一下。关于设计模式的学习,我都是看刘伟博士博客上的资料,因为关于Java实现的设计模式的资料比较少,而刘伟博士整理的又非常的好,不得不膜拜。学习知识最好的方法,就是自己去尝试,然后自己整理出来,跟别人分享,一旦你能够分享出来了,就真的掌握了知识。所以我用这种方式,学习其他博客的东西,整理出来,自己组织语言分享出来,这样是最高效的。所以,我有摘取其他博客的东西,但是也会原创 2017-10-07 22:16:56 · 304 阅读 · 0 评论 -
设计模式_原型模式
设计模式_原型模式作者:云都小生概述 现实中有这么一种情况,我们需要同时用到许多个对象,这些对象都有一部分共同的特点(默认属性),但我们有时候还想要使它们有些不同(改变属性)。例如,许多人经常跟PPT打交道,PPT中提供了多个不同的模版,当我们做PPT的时候,就可以直接使用这些模版,不用自己去制作。如果没有这些模版,我们每次都需要自己去制作,又或者是不断的copy,那该多烦。在设计模式中,我们希望原创 2017-10-09 11:56:18 · 342 阅读 · 0 评论 -
设计模式_建造者模式
作者:云都小生概念 建造者模式,本质是将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示。什么是复杂对象呢?举个栗子,一个赛车游戏,里面的汽车就是复杂的对象,只不过这些复杂的对象都不一样,有不同的轮胎,不同的电池,不同的发动机等等。建造者模式的角色建造者模式中有这么几个角色:抽象建造者、具体建造者、产品角色、指挥者。抽象建造者:它为创建一个产品对象(汽车)的各个部件指定抽象接原创 2017-10-14 09:39:28 · 489 阅读 · 0 评论 -
设计模式——组合模式
@Author:云都小生概述 组合模式其实就是把原本区分开了两种对象,以同一种方式进行处理。在组合模式中,有树枝(结点)和叶子两种对象,就像文件夹与文件一样。虽然它们是不同的对象,但是我们有时候就是想对它们的处理保持一致。如果我们对树枝和不同的叶子进行不同的处理,想必需要会增加大量冗余的代码,同时,系统的灵活性和可扩展性会降低。就像上面说到的文件夹与不同的文件,不同的文件可以是exe、css、ht原创 2017-11-10 21:50:34 · 301 阅读 · 0 评论 -
设计模式——桥接模式
@Author:云都小生 h3{color:green;font-size:24} p{font-size:22} strong{font-size:24;color:red} 引子 衣服有长袖,有短袖,还有背心。并且,衣服有黄色、蓝色、黑色各种不同的颜色。一般人来设计,会怎么去设计呢?首先它可能会创建长袖、短袖、背心三个抽象类/接口,然后黄色长袖、蓝色长袖、黑色长袖从长袖继承··· 黄色原创 2017-11-06 11:48:45 · 330 阅读 · 0 评论 -
设计模式——适配器模式
@Author:云都小生 h3{color:green;font-size:24} p{font-size:22} strong{font-size:24;color:red} 概述 “适配器”在我们生活中很常见,像有些电器的工作电压是20V,但是家庭电压是220V,产生了不兼容的问题。但是由于有适配器这种东西,就能解决这个不兼容的问题。在软件开发领域,我们也会碰到这样的问题,两个对象/类原创 2017-10-25 22:42:59 · 300 阅读 · 0 评论 -
设计模式——享元模式
Author:云都小生继承提高代码的复用性,享元模式提高对象的复用性。推荐!史上最全设计模式导学目录前述 我不知道大家有没有打过什么枪战游戏,那里面的子弹,都是一样的。若每一个子弹都是相同的对象,只不过每个子弹的位置不一样,那我们是不是得不断的new出一大堆的对象嘞?换个案例,围棋,黑棋和白棋其实都是一模一样的,只是每一个棋子的位置不一样,那我们是不是得new好多个对象。那样肯定会造成内存浪费,而原创 2017-12-11 15:47:40 · 286 阅读 · 0 评论 -
设计模式——装饰模式
Author:云都小生概述 一个GUI(图形化)程序,有很多的控件组成,例如说文本框、按钮、选择菜单等等,而这些文本框、按钮、选择菜单又会有很多种风格。我们一般会怎么去设计文本框、按钮、选择菜单与它们“风格”“装饰”的架构。emmm···· 应该是这样···这种用继承来架构的解决方案,可扩展性差,例如说我想要增加一个其他的特效,那每个控件下都得增加一个类,并且得修改一个类。除此之外,还有许多重复原创 2017-12-04 01:33:18 · 436 阅读 · 0 评论 -
设计模式——外观模式
Author:云都小生概述 外观模式也是一种结构设计模式,应用非常频繁,它是用来简化客户端与系统之间的交互。很多时候我们都希望用户得到更加简单直白纯粹的体验。如果我们给用户提供了速溶咖啡、热水,糖,杯子等,那用户就可以自己开始泡咖啡了。那我们为何不提供一个服务员,用户只需要跟服务员说要咖啡,就冲一杯咖啡给他呢?这里的服务员就是外观模式中关键的外观类了。在外观模式中通常两种角色,一种是外观类,另一种原创 2017-12-04 15:32:17 · 521 阅读 · 0 评论 -
世上本无设计模式——设计模式总结
作者:云都小生我眼中的设计模式 经过几个月的努力,除了解释器模式外,其他模式我都做了简单的了解。由于解释器模式的难度稍大,并且使用场景也并不是很广泛,便暂时放下了。如果把各类编程语言比喻成“招式”,把各类IDE比喻成“工具”,那设计模式就是一种“内功心法”。招式和工具所有的武林高手都能掌握, 但是内功心法却不一定,这也自然而然的成为了高手与菜鸟之间分水岭。为什么把标题...原创 2018-04-20 13:40:37 · 697 阅读 · 0 评论