• 依赖倒置原则(Dependence Inversion Principle)

    依赖倒置原则定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions)。其核心思想是:要面向接口编程,不要面向实现编程。

    设计模式 2021-07-24 16:29:21 浏览(265) 阅读原文
  • 接口隔离原则(Interface Segregation Principle)

    2002 年罗伯特·C.马丁给“接口隔离原则”的定义是:客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。该原则还有另外一个定义:一个类对另一个类的依赖应该建立在最小的接口上(The dependency of one class to another one should depend on the smallest possible interface)。

    设计模式 2021-07-24 16:29:21 浏览(217) 阅读原文
  • 里氏替换原则(Liskov Substitution Principle)

    里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出:继承必须确保超类所拥有的性质在子类中仍然成立(Inheritance should ensure that any property proved about supertype objects also holds for subtype objects)。

    设计模式 2021-07-24 16:29:21 浏览(199) 阅读原文
  • 开放-封闭原则(Open Closed Principle)

    开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这就是开闭原则的经典定义。

    设计模式 2021-07-24 16:29:21 浏览(151) 阅读原文
  • 单一职责原则(Single responsiblility principle)

    单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)。

    设计模式 2021-07-24 16:29:21 浏览(161) 阅读原文
  • 堆(Heap)

    堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。

    算法 2021-07-24 16:15:25 浏览(171) 阅读原文
  • 二叉树(Binary Tree)

    二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分。

    算法 2021-07-24 16:15:25 浏览(162) 阅读原文
  • 树(Tree)

    树是计算机中非常重要的一种数据结构,使用树这种数据结构可以描述显示生活中很多事物,例如家谱图、单位的组织架构等等

    算法 2021-07-24 16:15:25 浏览(173) 阅读原文
  • 符号表(Symbol Table)

    符号表(Symbol Table)是一个非常常见的数据结构,在现实生活中应用很多。它是一个“键”—“值”对应的结构。在符号表中,存储的是键值对。通过输入键,查询对应的值。

    算法 2021-07-24 16:15:25 浏览(225) 阅读原文
  • 线性表之队列(Queue)

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

    算法 2021-06-21 21:10:05 浏览(1412) 阅读原文
  • 线性表之栈(Stack)

    栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

    算法 2021-06-21 21:01:08 浏览(938) 阅读原文
  • 线性表之链表(Linked List)

    链表是一种物理存储单元上非连续、非顺序的存储结构,其物理结构不能只管表示数据元素的逻辑顺序,数据元素的逻辑顺序是通过链表中的指针链接次序而实现的,链表由一系列的节点(链表中的每一个元素称为结点)组成,节点可以在运行时动态生成。

    算法 2021-06-21 21:01:07 浏览(849) 阅读原文
  • 线性表之顺序表(Sequence List)

    线性表是最基本、最简单、也是最常用的一种数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。

    算法 2021-06-21 21:01:07 浏览(920) 阅读原文
  • 线性表(linear list)

    线性表是最基本、最简单、也是最常用的一种数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。

    算法 2021-06-21 21:01:07 浏览(925) 阅读原文
  • 单一职责原则(Single responsiblility principle)

    单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)。

    设计模式 2021-06-16 11:52:57 浏览(267) 阅读原文