
设计模式
设计模式—站在巨人肩膀上的最好的学习方式
冯佳兴
一名非常热爱计算机的 Boy,技术是一门哲学,愿意和我一起研究新的技术吗?
本人坚持自主学习,站在巨人肩膀上学习,善于分享。
我会经常分享系列基础博客,希望大家喜欢,有什么问题记得关注留言哦!
展开
-
行为型模式——状态模式(State)
开头 今天让我们学习一下状态模式,冯曰:“青春太匆忙,来不及欣赏”随着我们一天天的长大,我们时时刻刻在改变着,这里说的改变是状态的改变,例如今天学习不下去,心情沮丧沉闷,大脑告诉我,你该找师父去聊聊了,给师父聊完天以后,自己又像是打了鸡血一样满血复活,充满着无限战斗了,学习久了,又开始感觉身心俱疲,想骂街,后来大脑告诉我,你看看你都多大孩子了,发怒的时候就应该多看书,书上说:“生气发怒不好...原创 2018-06-02 16:18:19 · 516 阅读 · 22 评论 -
行为型模式——中介者模式(Mediator Pattern)
开头 今天我们学习一下中介者模式,中介,什么是中介呢?中介指在不同事物或同一事物内部对立两极之间起居间联系作用的环节。对立的两极通过中介联成一体。中介因对立面的斗争向两极分化,导致统一体的破裂。可能大家一看就懵逼,说白了就是两个人之间联系,中间多了一个第三者,好比我们租房子的中介,好比我们平时通过第三方和自己亲人朋友聊天,例如QQ,微信等都是中介者。 内容 关于中介者模式我们...原创 2018-06-02 10:55:07 · 812 阅读 · 17 评论 -
行为型模式—— 职责链模式(Chain of Responsibility Pattern)
开头 今天我们学习一下职责链模式,大家有没有发现我写了这么多的博客,对于一个新概念的东西,我们可能不理解它是干什么用的,但是我们可以根据它的词义来给来解析一下,大脑里首先有一个对它的看法,然后根据前后的对比,这样会更加了解对一个新概念的认识,我们拿今天的职责链模式解析一下,职责链,职责链,首先它是一条链,那么肯定有人担任职责,既然是一条链,肯定担任这个职责的人不只有一个,到底什么是职责链模式...原创 2018-05-31 15:15:46 · 780 阅读 · 18 评论 -
行为型模式——命令模式(Command)
开头 今天我们来学习一下行为型模式中的命令模式,这是一个相对比较简答的模式,当我们看到“命令”一词时我们联想到的是什么?既然是命令,Who发出命令,Who接收执行命令,有了发出命令的人,和接收命令的人,那么该如何更好的处理两者之间的关系,更好的接收和执行命令呢?今天我们学习的命令模式就解决的这个问题。内容 例子:我们想象一个场景,有一天有很多很多的客户去饭店吃饭,一个客户点了西红柿炒...原创 2018-05-31 12:01:42 · 541 阅读 · 15 评论 -
行为型模式——备忘录模式(Memento)
开头 我一直坚信生活中不存在后悔药,但是今天在软件开发中竟然存在后悔药这一概念,例如打游戏,不能说游戏主人公死了以后就永远能在玩这个游戏了吧,那游戏体验如果是这个样子,我觉得真的没有必要再玩了。今天就带大家介绍一下设计模式中的后悔药——备忘录模式。 内容 我们先从词义上分析一下备忘录一词,好比账本,通讯录、数据库、他们好比记忆工具一样,记录着不同时期每一笔花销状态,每一...原创 2018-05-30 21:31:59 · 558 阅读 · 17 评论 -
行为型模式——观察者模式(Observer Pattern)
开头 今天我们一起学习一下行为型模式中的另一个模式——观察者模式,观察者模式是用来描述类和类之间关系的一种模式,当然是描述如何更好的分配类和类之间职责的一种模式,这就好比软件开发小组一样,组长发出信号以后,组内不同的人员根据相同的信号,产生具体的行为,是不是感觉有点多态的意思。内容 我们还是根据语义来分析观察者模式,当你看到观察者时,你会不会想到自己就是一个观察者,骑车的时候我们...原创 2018-05-29 17:58:45 · 547 阅读 · 30 评论 -
行为型模式——模板方法模式(Template Method Pattern)
开头 今天带领大家学习一下行为型模式中的第二个简单的模式——模板方法模式,在介绍模板方法模式之前,我们先将行为型模式分几大类。这样我们可以通过对比,一个个模块的学习,这样我们会更加有收获哦。 进入正题,模板方法模式,当你看到模板两个词以后,你最先想到的是什么?PPT模板?简历模板?一些平时写作业用的表格模板啊,我相信你是在大学用的模板最多的了,说着了这多模板,他们的共同点是什么呢?让我...原创 2018-05-28 17:40:01 · 566 阅读 · 26 评论 -
行为型模式——策略模式(Strategy)
开头 随着设计模式的学习,我们来到了最后一个模式——那就是行为型模式,前面我们讲了创建型模式,他是描述如何更好的创建对象,后来我们学习了结构型模式,它讲了如何更好的描述类与类之间更好的组合,那么今天我们学习的行为模式是描述类与类之间如何更好的分配职责和交互。三者之间层层递进,环环相扣。那么我们今天就拿行为模式中最简单的一个模式——策略模式。看看策略模式是如何完成类与类之间交互的?内容 ...原创 2018-05-28 00:38:20 · 3923 阅读 · 19 评论 -
结构型模式——享元模式(Flywight)
开头 今天我们学习一下享元模式,当你看到享元两个字你会想到什么?共享元数据?共享已经存在的对象?元有头、首的意思。所谓的享元模式也有这样的特点,系统需要多个相同对象的时候,我们就用到了享元模式,既然对象相同,每次我只需要调用该对象就可以,不需要重复创建相同的对象,这样是不是大大的减少了对系统内存空间的浪费。 内容既然享元模式这么好,享元模式大致分为四类角色,分别为Flywight(抽象享...原创 2018-05-27 21:03:56 · 449 阅读 · 23 评论 -
结构型模式——外观模式(Facade)
开头 今天我们学习一下外观模型,想到外观两个字你会想到什么?一种门面?脸面?一个通往内心深处的接口?外观模型之所以存在,就是为了让接口门面更加好看。如何好看呢?下面我们展示一幅图代表一下门面是多么的关键。 内容 当多个客户端连续访问多个子系统时,好比左图,是不是特别繁琐,如果我们给该系统增加一个门面,客户端只需要访问门面就可以访问到自己调用的多个子系统,或者说如果子系统发生改变,客...原创 2018-05-26 16:42:45 · 1548 阅读 · 90 评论 -
结构型模式——组合模式(Composite)
开头 今天我们学习一下组合模式,一说到组合两个字你会想到什么呢?UML关系中的组合关系?图片和拼图?文件夹和文件?列表和节点?在学习组合模式之前我觉得很有必要复习一下组合关系和聚合关系的区别? 组合关系:整体和部分的关系,有了整体才有部分,部分不能脱离整体存在。 例子:列表可以包含0或多个节点,一个节点只属于一个列表。一个文件夹里面可以创建文件,一个文件只属于这个文件夹里面。(有...原创 2018-05-26 15:02:37 · 5480 阅读 · 19 评论 -
结构型模式——代理模式(Proxy)
开头 今天小编带大家学习一下代理模式,古代君王整天沉迷于花天酒地,一些朝政就置之不理,于是找来了摄政王,让摄政王或者代理大臣代理朝政,最后国家成了别人的国家。如今随着时代的发展,我们的腰包里面鼓鼓的,于是开始想买国外的商品,由于外界因素的限制导致我们无法直接购买商品,于是我们找来了代理商去帮助我们购买我们需要的产品。今天我们学习的设计模式也是这样的,当一个对象无法直接访问一个对象时,可以...原创 2018-05-24 14:18:57 · 810 阅读 · 22 评论 -
结构型模式——装饰模式(Decorator Pattern)
开头 今天小编带大家一起学习装饰者模式,当大家看到装饰两个字以后会不会想到房子的装修,房子本来就具有遮风避雨的功能,为了让房子更加温馨舒适,我们可以增加一些家具,可以增加一些沙发。有一天觉得室内环境不美观,我们给墙壁增添一些壁纸,随着我的的喜好可以给我们的房子动态的增加一些功能,挂件。让我们的家增加一些特殊的功能,装饰者模式就好比室内装修一样,动态的给对象增加职责,扩充原有类的功能。内容 ...原创 2018-05-23 20:50:12 · 462 阅读 · 17 评论 -
结构型模式——桥接模式(Bridge Pattern)
开头 今天我们学习结构型模型的第二个模式,桥接模式,我们知道结构型模型是描述对象与类之间的组合,我们平时原创 2018-05-22 21:22:12 · 656 阅读 · 19 评论 -
结构型模式——适配器模式(Adapter Pattern)
开头 今天我们开始学习结构型模型设计模式,在学习该模型时我们先复习一下创建型模型,我们都知道创建型模型描述的是如何更好的创建对象,而今天所学的结构型模型是描述对象和类之间的组合,描述两者之间如何更好的组合,以发挥其优势。既然是组合,我们就先以适配器模式开头吧。内容 适配器模式,当你看到适配器模式的时候你有没有想到电源适配器、网卡适配器、网络适配器、变压器、电源转换器、万能扳手、翻译...原创 2018-05-20 10:39:30 · 443 阅读 · 14 评论 -
创建型模式——单例模式(Singleton Pattern)
开头 今天我们学习单例模式,所谓的单例模式就是一个类只能实例化一次,也就是说只能创建一次对象,我们拿我们的电脑为例,当我们调用个性化窗口的时候,无论通过什么方式调用出来,只出现一个个性化的窗口,这样的窗口就具有唯一性,如果每调用一次就出现一个这样的窗口,系统就会不停的为该进程分配内存,导致系统内存资源得到极大的浪费,而且多个窗口都是一致的,对我们毫无意义。 内容单例模式具...原创 2018-05-19 21:05:19 · 553 阅读 · 16 评论 -
创建型模式——建造者模式(Builder Pattern)
当一个复杂的对象是由多个子对象通过一定的步骤组合而成的时候,我们用到了建造者模式。例如我们平时买的汽车,他就是一个复杂的对象,通过轮子、引擎发动机、方向盘等组合而成。我们平时用的电脑,都是一个复杂的对象。...原创 2018-05-18 21:39:27 · 688 阅读 · 17 评论 -
创建型模式——原型模型(Prototype Pattern)
开头 还记得小时候我们写作业,老师说:“佳兴,你英语单词填写怎么又错了,把这个句子抄写十遍”,可怜的我只能一遍一遍默默的抄写。当时我就想,如果我有钱了,我一定要买一台打印机,后来我毕业了。目前小编学习C#,遇到总是创建相同实例的过程,但凡有这个问题,我觉得前辈门总会有解决问题的方案,如果有岂不既减少了系统创建实例的内存消耗,又可以提高代码的复用么,今天我们学习的这个原型模型设计模式可以...原创 2018-05-15 10:45:24 · 1270 阅读 · 25 评论 -
创建型模式——抽象工厂模式(Abstract Factory Pattern)
前提 前面我们学习到了简单工厂模式,工厂方法模式,简单工厂随着新产品的增加需要增加额外代码,工厂方法模式解决了简单工厂这一缺点,它根据新增加具体的产品类,创建具体工厂类,生产具体产品,实现了很好的扩展性,可见工厂模式中的工厂只能创建某种具体的一种产品,而无法创建一系列的产品,那该如何是好?可见抽象工厂的出现解决了这个问题。 抽象工厂模式介绍 我们假期的时候在学校学习,每到了饭点的时间...原创 2018-05-14 21:21:43 · 397 阅读 · 19 评论 -
创建型模式——工厂方法模式(Factory Method Pattern)
开头 上一篇我们讲到了简单工厂模式,我们知道简单工厂模式存在很大的弊端,就是系统扩展的问题,当我们添加新的产品就不得不修改简单工厂里面的方法,我们知道面向对象开放—封闭性原则,这样的改动破坏了代码的封装性。这个问题如何解决呢?就是今天我们所讲的工厂方法模式。 工厂方法模式—工厂不在负责产品的创建,而是给出具体工厂必须实现的接口,这样就不需要改动工厂来添加新产品。class Progra...原创 2018-05-14 15:21:40 · 749 阅读 · 23 评论 -
创建型模式——简单工厂模式(Simple Factory Pattern)
开头 我们可以将设计模式分为三大类,分别为创建型模式、结构型模式、行为型模式,每种模式有着各自的特点。 创建型模式——它是用来描述如何创建对象的。 思维导图:创建型模型分类创建型模式又分为简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、原型模式、建造者模式。简单工厂模式简单工厂模式提供了专门的工厂类用于创建对象,将对象的创建和使用分离开。例子一:...原创 2018-05-13 20:32:45 · 635 阅读 · 19 评论 -
初识设计模式
今天开始踏上学习设计模式的里程,真的不知道这篇博客该以什么样的形式开头,感觉自己走上了拜师学艺的道路,在今天我要重新认识了什么是站在巨人的肩膀上,我相信这个过程对于初学者的我来说可能是很苦的,但是学习本来就是一件吃苦的事情,既然必须要吃,就要快快乐乐的吃 在学习设计模式之前,我们需要对设计模式有一个很好的了解,开始学习设计模式之前看到了许多伟人的博客,看到他们总结的是那么的有体系有套路...原创 2018-05-01 16:52:00 · 393 阅读 · 21 评论