自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海纳百川

一分耕耘一分收获

  • 博客(17)
  • 收藏
  • 关注

原创 设计模式——访问者模式

设计模式——访问者模式一、基本概念1. 定义访问者(Visitor)模式:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。访问者模式是一种行为设计模式, 它能将算法与其所作用的对象隔离开来。2. 优缺点优点:扩展性好。能够在不修改对象结构中的元素的情况下,为对象结构中的元素添加新的功能;复用性好。可以通过访

2021-03-06 10:01:52 289

原创 设计模式——模板模式

设计模式——模板模式一、基本概念1. 定义模板方法(Template Method)模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。2. 优缺点优点:它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展;

2021-03-06 09:12:19 142

原创 设计模式——策略模式

设计模式——策略模式一、基本概念1. 定义策略(Strategy)模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。2. 优缺点优点:多重条件语句不易维护,而使用策略模式可以避免使用多重条件语

2021-03-06 08:38:57 309

原创 设计模式——状态模式

设计模式——状态模式一、基本概念1. 定义状态(State)模式:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。2. 优缺点优点:结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”;将状态转换显示化,减少对象间的相互依赖。将不同的状态引入独立的对象中会使得

2021-03-06 08:15:33 370

原创 设计模式——观察者模式

设计模式——观察者模式一、基本概念1. 定义观察者(Observer)模式:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。2. 优缺点优点:降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则;目标与观察者之间建立了一套触发机

2021-03-05 22:52:31 269

原创 设计模式——备忘录模式

设计模式——备忘录模式一、基本概念1. 定义备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。2. 优缺点优点:提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态;实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息;简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,

2021-03-05 22:15:20 91

原创 设计模式——中介者模式

设计模式——中介者模式一、基本概念1. 定义中介者(Mediator)模式:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。2. 优缺点优点:类之间各司其职,符合迪米特法则;降低了对象之间的耦合性,使得对象易于独立地被复用;将对象间的一对多关联转变为一对一的关联,提高系统的灵活性,使得系统易于维护和扩展。缺点:中介者模式将原本多个对象直接的相互依赖变成了中介者和多个同事类的依

2021-03-04 17:18:47 95 1

原创 2.1 线性表的定义和基本操作

2.1 线性表的定义和基本操作思维导图一、线性表的定义线性表是具有相同数据类型的 n(n >= 0)个数据元素的有限序列,其中 n 为表长,当 n = 0 时,线性表是一个空表。若用 L 命令线性表,其一般表示为:L=(a1,a2,...,ai,ai+1,...,an)L = (a_1, a_2, ..., a_i, a_{i+1}, ..., a_n)L=(a1​,a2​,...,ai​,ai+1​,...,an​)式中,a1 是唯一一个“第一个”数据元素,又称表头元素:an是唯一

2021-03-04 09:39:40 317 1

原创 1.2 算法和算法评价

1.2 算法和算法评价知识图谱一、算法的基本概念算法(Algorithm)是特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。此外,一个算法还具有下列5个重要特性:有穷性:一个算法中必须总在执行有穷步之后结束,且每一步都可能在有穷时间内完成;确定性:算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出;可行性:算法中描述操作都可以通过已经实现的基本运算执行有限次来实现;输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合;输出:一

2021-03-03 22:42:16 252 1

原创 设计模式——迭代器模式

设计模式——迭代器模式一、基本概念1. 定义迭代器模式(Iterator):是一种最简单也最常见的设计模式。它可以让用户透过特定的接口巡访容器中的每一个元素而不用了解底层的实现。2. 优缺点优点:访问一个聚合对象的内容而无须暴露它的内部表示;遍历任务交由迭代器完成,这简化了聚合类;它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类以支持新的遍历;增加新的聚合类和迭代器类都很方便,无须修改原有代码;封装性良好,为遍历不同的聚合结构提供一个统一的接口。缺点:增加了类的个数

2021-03-03 21:43:21 107 1

原创 设计模式——命令模式

设计模式——命令模式一、基本概念1. 定义命令模式(英语:Command pattern)是一种设计模式,它尝试以对象来代表实际行动。命令对象可以把行动(action) 及其参数封装起来,于是这些行动可以被:重复多次、取消(如果该对象有实现的话)、取消后又再重做。2. 优缺点优点:通过引入中间件(抽象接口)降低系统的耦合度;扩展性良好,增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类,且满足“开闭原则”;可以实现宏命令。命令模式可以与组合模式结合,将多个命令装配成一个组

2021-03-03 21:01:40 201 1

原创 1.1 数据结构的基本概念

1.1 数据结构的基本概念知识图谱一、基本概念和术语1. 数据数据是信息的载体,是描述客观事物属性的数、字符及所有能被输入到计算机中并被计算机程序识别和处理的符号集合。数据是计算机程序加工的原料。2. 数据元素数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。3. 数据对象数据对象是具有相同性质的数据元素的集合,是数据的一个子集。4. 数据类型数据类型是一个值的集合和定义在此集合上的一组操作的总称。

2021-03-03 19:50:36 670 1

原创 设计模式——责任链模式

设计模式——责任链模式一、基本概念1. 定义**责任链模式(Chain of Responsibility):**在面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。该模式还描述了往该处理链的末尾添加新的处理对象的方法。2. 优缺点优点:降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构,发送者和接收者也无须拥有对方的明确

2021-03-02 09:53:26 194

原创 设计模式——代理模式

设计模式——代理模式一、基本概念1. 定义代理模式(英语:Proxy Pattern)是程序设计中的一种设计模式。所谓的代理者是指一个类别可以作为其它东西的接口。代理者可以作任何东西的接口:网络连接、存储器中的大对象、文件或其它昂贵或无法复制的资源。2. 优缺点优点:代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的功能;代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性缺点:代理模式会造成系统设

2021-03-02 08:54:08 227

原创 设计模式——享元模式

设计模式——享元模式一、基本概念1. 定义享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用物件用来尽可能减少内存使用量;于相似物件中分享尽可能多的资讯。当大量物件近乎重复方式存在,因而使用大量内存时,此法适用。通常物件中的部分状态(state)能够共享。常见做法是把它们放在数据结构外部,当需要使用时再将它们传递给享元。2. 优缺点优点:相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。缺点:为了使对象可以共享,

2021-03-01 23:55:07 214

原创 设计模式——外观模式

设计模式——外观模式一、基本概念1. 定义外观模式(Facade pattern),是软件工程中常用的一种软件设计模式,它为子系统中的一组界面提供一个统一的高层界面,使得子系统更容易使用。2. 优缺点优点:降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类;对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易;降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因为编译一个子系统不会影响其他的子系统,也不会影响外观对象。

2021-03-01 22:59:34 171

原创 设计模式——装饰器模式

设计模式——装饰器模式一、基本概念1. 定义修饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。2. 优缺点优点:是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用;通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果;装饰器模式完全遵守开闭原则。缺点:装饰器模式会增加许多子类,过度使用会增加程序得复杂性。3. 结构

2021-03-01 21:49:44 148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除