huixieqingchun
硕士毕业于通信与信息系统方向;硕士期间,在导师的带领下参加了973和863国家重大专项课题的研发,物联网协同创新中心国家重点实验室成员,曾在校担任助教。毕业至今一直在互联网公司从事系统研发工作,积累了比较丰富的经验。目前一直在前进的路上......
展开
-
【简易设计模式24】设计模式终章
总第76篇23种经典设计模式,主要是从功能和结构的角度进行分类的,具体如下:创建型:关注的是对象的创建和初始化过程。创建型模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,它们都可以提供对象的创建和管理的职责。结构型:关注的是对象的内部结构设计。结构型模式包括适配器模式、组合模式、桥梁模式、装饰模式、门面模式、享元模式和代理模式,它们都是通过组合类或对象产生更大结构以适应更高层次...原创 2020-11-11 22:22:33 · 132 阅读 · 0 评论 -
【简易设计模式23】余下的三种设计模式(模板模式、桥接模式、解释器模式)...
总第75篇本篇将梳理余下的三种设计模式:模板模式、桥接模式和解释器模式。1.模板模式模板模式非常简单,它是定义一个操作中的算法框架,将一些步骤延迟到子类中,使得子类可以改变一个算法的结构,重新定义算法的某些特定步骤。模板模式的通用类图关系如下图所示:Template是一个模板类,用于定义模板的方法,TemplateImplA和TemplateImplB是模板类的具体子类,用于实现算法框架中的一些特...原创 2020-11-07 16:35:19 · 135 阅读 · 0 评论 -
【简易设计模式22】访问者模式
第74篇出过书的朋友都知道,对于你出的一本书,不同类型的读者会给你不同的反馈,因为他们看到了不同的层次,读到了不同的味道。这里的读者和书是两类事物,他们虽有联系,却是比较弱的联系,我们可以将其分开处理,这种方式在程序中称作访问者模式。读者就是访问者,书是被访问的对象,阅读就是访问行为。本篇将详细梳理访问者设计模式。1.访问者模式的概念访问者模式(Visitor Pattern) 也是相对简单的模式...原创 2020-11-07 13:33:13 · 98 阅读 · 0 评论 -
【简易设计模式21】门面模式(外观模式)
总第73篇在日常生活中,有时为了方便,我们会找一个对接人,将复杂的业务通过这个对接人来提供一整套统一的服务,从而我们不用关心内部复杂的运行机制,这种方式在程序中称为门面模式。本篇将详细梳理这种设计模式。1.门面模式的概念门面模式(Facade Pattern)也称作外观模式,是一种常见的封装模式。它要求一个子系统的的外部与其内部的通信必须通过一个统一的接口对象进行,门面模式定义一个高层次的接口,使...原创 2020-11-05 22:56:40 · 143 阅读 · 0 评论 -
【简易设计模式20】原型模式(克隆模式)
总第72篇在程序中,我们可以不通过new关键字来产生一个对象,而是通过对象复制来实现的模式称为原型模式,本篇将详细梳理这种设计模式。 1.原型模式的概念原型模式(Prototype Pattern)也称作克隆模式,其简单程序仅次于单例模式和迭代器模式。它是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式的核心就是一个Clone()方法, 此方法的功能就是拷贝父本的所有属性...原创 2020-11-03 23:32:12 · 112 阅读 · 0 评论 -
【简易设计模式19】享元模式
总第71篇本篇将详细梳理程序设计中的享元模式。1.享元模式的概念享元模式(Flyweight Pattern)是池技术的重要实现方式,它是运用共享对象有效地支持大量细粒度对象的复用。 享元对象能做到共享的关键是区分内部状态和外部状态。内部状态(Intrinsic State):是存储在享元对象内部并且不会随环境改变的状态,是对象可共享出来的信息;外部状态(Extrinsic State):是随环境...原创 2020-11-02 22:57:25 · 77 阅读 · 0 评论 -
【简易设计模式18】备忘录模式
总第70篇我们在工作中经常会将自己要做的事写在一个小便签上,以便在自己忘记工作内容时,可以通过便签快速恢复记忆。在程序中,我们将一个对象的状态或内容记录起来,在其状态发生改变或出现异常时,可以恢复对象之前的状态或内容,这称之为备忘录模式。本篇将详细梳理备忘录模式。1.备忘录模式的概念备忘录模式(Memento Pattern)提供了一种弥补真实世界缺陷的方法,它是在不破坏封装性的前提下,捕获一个对...原创 2020-11-01 00:38:50 · 141 阅读 · 0 评论 -
【简易设计模式17】命令模式
总第69篇我们在饭店点餐时,只要想好自己要吃什么,直接告诉服务员,过一会儿就可以吃饭了,不用管厨师是如何做的,这种我们只要发送指令就能完成想要的任务的模式,在程序中称为命令模式。本篇将详细梳理设计模式中的命令模式。1.命令模式的概念命令模式是一个高内聚的模式,它是将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或记录请求日志,可以提供命令的撤销和恢复功能。命令模式最大的特...原创 2020-10-20 20:45:27 · 111 阅读 · 0 评论 -
【简易设计模式16】策略模式
总第68篇假如明天我要去东方明珠玩,我可以坐公交车,也可以乘地铁,还可以骑共享单车,更可以打出租车等等,选择什么样的交通工具不重要,重要的是能够到达目的地,我可以为自己的出行情况制定不同的出行方式和策略。在程序中,这种设计模式称作策略模式。本篇将详细梳理这种模式。1.策略模式的概念策略模式(Strategy Pattern)是一种比较简单的模式,也叫做政策模式。它定义一系列算法,将每个算法封装起来...原创 2020-10-19 20:42:40 · 110 阅读 · 0 评论 -
【简易设计模式15】建造者模式
总第67篇相信我们都玩过搭积木游戏,把不同的部件拼接成自己想要的东西的过程,就是一个构建过程,程序中将这一构建过程称作构建模式。本篇将详细梳理这种设计模式。1.建造者模式的概念建造者模式(Builder Pattern)也称作构建模式、生成器模式。它是将一个复杂对象的构建过程与它的表现分离,使得同样的构建过程可以创建不同的表现。构建模式是一个产品或对象的生成器,强调产品的构建过程,其类图关系如下:...原创 2020-10-19 13:53:36 · 94 阅读 · 0 评论 -
【简易设计模式14】组合模式
总第66篇在日常生活中,我们很容易见到树状结构, 就像我们组装台式机电脑一样,把各个组件组装起来,形成一个树状结构,这种操作方法在程序中称为组合模式。本篇将详细梳理一下这种设计模式。1.组合模式的定义组合模式(Composite Pattern)也叫合成模式,它将对象组合成树状结构以表示“部分——整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。程序使用组合模式设计时,使用组合对象就...原创 2020-10-17 19:10:23 · 201 阅读 · 0 评论 -
【简易设计模式13】装饰模式
总第65篇我们在日常生活中,每天会换衣服,进行不同的着装,类比于程序中,给某个类添加一点功能或职责,这种做法就是装饰模式。本篇将详细梳理这种模式。1.装饰模式的概念装饰模式(Decorator Pattern)是继承关系的一个有效替代,它动态地为一个对象添加一些额外的职责和功能,就增加对象功能来说,装饰模式比生成子类更加灵活。装饰模式的类图关系如下图所示:从上面的类图关系中,我们可以看出装饰模式主...原创 2020-10-17 16:07:32 · 74 阅读 · 0 评论 -
【简易设计模式12】迭代器模式
总第64篇对于现在很多编程语言对于迭代器都封装的非常好,我们可以在开发的过程中直接拿来用即可。对于这种模式,我们还是来详细梳理一下。1.迭代器模式的概念迭代器模式(Iterator Pattern)它提供了一种方法访问一个容器对象中的各个元素,而又不用暴露该对象的细节。迭代器是为容器服务的,迭代器模式就是了为解决遍历这些容器中的元素而产生的。一个迭代器一般对应着一个容器类,而一个容器会包含多个元素...原创 2020-10-15 20:36:37 · 96 阅读 · 0 评论 -
【简易设计模式11】中介者模式
总第63篇在日常生活中,我们会遇到租房子的问题,为了减少麻烦,我们会直接找房屋中介,这种由中介来承接房客与房东之间的交互过程,在程序中叫做中介模式。本篇将详细梳理中介模式。1.中介者模式的概念中介者模式也称为调停者模式,它是用一个中介者对象来封装一系列对象的交互,中介者使各对象不需要显式地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式是一种对象行为型模式。在很多系统中,很...原创 2020-10-13 20:31:15 · 159 阅读 · 0 评论 -
【简易设计模式10】责任链模式
总第62篇我们在工作过程中有时候会请假休息,当我们填写一张请假单后,在这张假单签字的人,是一级接一级地推进,比如直属领导->部门总监->CEO->行政人员这样一个流程,处理这张假单的过程就是一个责任的传递,他们构成了一个责任的链条,这就是责任链模式的核心思想。本篇将详细梳理责任链模式。1.责任链模式的概念责任链模式也称职责模式,它是一种对象行为型模式。它定义为:使多个对象都有机会...原创 2020-10-12 21:58:32 · 150 阅读 · 0 评论 -
【简易设计模式09】代理模式
总第61篇在某些情况下,一个客户不想或才不能直接引用一个对象,此时可以通过找”代理人“的方式来实现间接引用,这种方式在程序设计中也非常常见,这就是我们称之为的代理模式。本篇将详细梳理代理模式。 1.代理模式的概念代理模式(Proxy Pattern)也称作委托模式,其定义为:为某个对象提供一种代理,并由这个代理对象控制对原对象的访问。许多其它的模式,如状态模式、策略模式、访问者模式,在本质上是更特...原创 2020-10-11 11:05:46 · 75 阅读 · 0 评论 -
【简易设计模式08】状态模式
总第60篇自然界中所有事物都有自己的存在形态,比如水有固态、液态、气态,三种不同的形态有着完全不一样的外在特性,我们将事物所处的某一种形态称为状态。本篇将详细梳理设计模式中的状态模式。1.状态模式的概念状态模式(State Pattern)也称对象的行为模式,是指一个对象在其内部状态发生改变时,它表现的行为和外在属性不一样,这个对象看上去像是改变了它的类型一样。状态模式的核心是封装,其对应的类图关...原创 2020-10-10 22:02:40 · 83 阅读 · 0 评论 -
【简易设计模式07】适配器模式
总第59篇技术只是一个工具,它是为业务服务的,不管系统设计的多么完美,都无法逃避新业务的发生,这就需要有一种”补救模式“——适配器模式,来保证我们设计的系统在生命周期内能够稳定、健壮地运行。本篇将详细梳理适配器模式的设计思想。1.适配器模式的概念适配器模式(Adapter Pattern)也称作变压器模式,也是包装模式的一种(包装模式有多种),它是指将一个类的接口变换成客户端所期待的另一种接口,从...原创 2020-10-10 17:20:05 · 290 阅读 · 0 评论 -
【简易设计模式06】工厂方法模式(包含简单工厂和抽象工厂)
总第58篇工厂模式在项目设计中应用非常广泛,本篇将详细梳理工厂模式,这里包含工厂模式的三朵姐妹花:简单工厂模式、工厂方法模式和抽象工厂模式。 1.简单工厂模式简单工厂模式(Simple Factory Pattern)也称为静态工厂模式,它是专门定义一个类,依据参数的不同,来负责创建其它类的实例,被创建的实例通常都具有共同的父类。只所以称作静态工厂模式,是因为面向对象语言中,通过将其定义成一个静态...原创 2020-10-10 13:46:34 · 96 阅读 · 0 评论 -
【简易设计模式05】观察者模式(监听模式)
总第57篇上篇详细梳理了单例模式,本篇将详细梳理观察者模式。1.观察者模式的概念观察者模式也称作监听模式,即观察与被观察的关系,比如你在烧开水时看它有没有开,你就是观察者,水就是被观察者。观察者模式是指对象之间一对多的依赖关系,每当那个特定对象改变状态时,所有依赖于它的对象都会得到通知并被自动更新。观察者模式是对象的行为模式。有的地方称作的发布-订阅模式、模型-视图模式、源-监听器模式、从属者模式...原创 2020-10-09 22:20:40 · 330 阅读 · 0 评论 -
【简易设计模式04】单例模式
总第56篇在上篇中,我们对整个系统的设计应遵循的六大设计原则进行了系统性的梳理和讲解。在开发过程中,我们应尽量按照这些设计原则去做,当然也不能生搬硬套,要适当权衡,根据自己的项目情况、项目场景去考量。从本篇开始,将通俗易懂地介绍23种设计模式。本篇将详细梳理单例模式。1.单例模式的概念单例模式(Singleton Pattern)是一个比较简单的设计模式,它确保某一个类只有一个实例,并且自行实例化...原创 2020-10-09 21:25:29 · 82 阅读 · 0 评论 -
【简易设计模式03】软件系统设计中的六大设计原则(理论指导)
总第55篇上篇主要对类图关系及类图符号表示作了一个简单介绍,本篇将详细阐述设计模式的理论指导:6大设计原则。 1.单一职责原则单一职责原则(Single Responsibility Principle)的定义是:应该有且仅有一个原因引起类的变更。单一职责原则有什么好处呢?主要表现在以下几个方面:类的复杂性降低,可以明确定义类要实现的职责;因复杂性降低,类的可读性与维护性也大大提高;类的变更风险...原创 2020-10-07 09:52:06 · 207 阅读 · 0 评论 -
【简易设计模式02】UML中的类图关系及类图符号表示法
总第54篇在第53篇中,我们已经对设计模式进行了系统性的介绍,为了更好地理解设计模式,本文将对UML(Unified Modeling Language) 描述的类图关系进行详细地介绍,并对其相应的符号表示方法进行归纳。1.面向对象中的类间关系在进行面向对象系统设计时,我需要根据系统的需求来抽象出一些类,并设计类与类之间的关系,这就是我们常说的业务建模。设计优良的类间关系是我们实现“高内聚、低耦合...原创 2020-09-19 19:34:34 · 546 阅读 · 0 评论 -
【简易设计模式01】设计模式简介(请不要错过我)
总第53篇在接下来的一段时间中, 我将用通俗易懂的语言、简洁高效的描述方式来总结阐述软件中的设计模式,让原来晦涩难懂的设计模式一看就懂。相关的文章将全部收录于专栏【一看就懂的设计模式】中。 本文将对设计模式作一个简单介绍,并阐明何为设计模式、为什么要学习设计模式等相关问题。1.何为设计模式?设计模式,它是一套理论,是由软件界的先辈们(the Gang of Four)总结出的一套软件设计经验,并将...原创 2020-09-19 11:29:07 · 116 阅读 · 0 评论