企业博客 学生身份

我要认证

选择适合自己的。

等级
TA的排名 1w+

【设计模式】访问者模式(Visitor)

访问者模式访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。System.Collection命名空间下提供了大量集合操作对象。但大多数情况下处理的都是同类对象的聚集。如果需要针对一个包含不同类型元素的聚集采取某种操作,而操作的细节根据元素的类型不同而有所不同时,就会出现必须对元素类型做类型判断的条件转移语句。问题提出在面向对象系统的开发和设计过程,经常会遇到一种情况就是需求变更。Visitor模式则提供了一种解决方

2020-06-15 01:30:03

【设计模式】享元模式(Flyweight)

概述享元模式是以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内部状态和外部状态。内部状态是存储在享元对象内部并且不会随环境改变而改变。因此内部状态可以共享。享元模式结构图示意性代码namespace 享元模式{ abstract class Flyweight { public abstract void Operation(int extrinsicstate); } class ConcreteFlyweight

2020-06-14 23:38:20

【数据库】数据库恢复技术

文章目录一、 事务的基本概念1.事务1.1what's the 事务:1.2事务的定义1.2.1 事务的显示定义1.2.2 事务的隐式定义方式2.事务的ACID特性2.1原子性(Atomicity)2.2一致性(Consistency)2.3一致性与原子性2.4 隔离性(Isolation)2.5 持续性(Durability )2.6 事务特性的保证与破坏二、 数据库恢复概述1.故障是不可避免的2.故障的影响3.数据库的恢复4.恢复子系统是数据库管理系统的一个重要组成部分5.恢复技术是衡量系统优劣的重

2020-06-13 00:28:33

【数据库】并发控制

文章目录简介1. 多用户数据库系统2.多事务执行方式2.1 事务串行执行2.2 交叉并发方式(Interleaved Concurrency)2.3同时并发方式(simultaneous concurrency)2.4 事务并发执行带来的问题1 并发控制概述1.1修改丢失1.2 不可重复读1.3 读“脏”数据2 封锁2.1什么是封锁2.2基本封锁类型2.3锁的相容矩阵3 封锁协议3.1什么是封锁协议3.2三级封锁协议3.2.1. 一级封锁协议3.2.2. 二级封锁协议3.2.3. 三级封锁协议3.

2020-06-13 00:26:51

【数据库】数据库编程

嵌入式SQLSQL语言提供了两种不同的使用方式交互式嵌入式为什么要引入嵌入式SQLSQL语言是非过程性语言事务处理应用需要高级语言这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充一、嵌入式SQL的处理过程主语言嵌入式SQL是将SQL语句嵌入程序设计语言中,被嵌入的程序设计语言,如C、C++、Java,称为宿主语言,简称主语言。处理过程预编译方法为了区分SQL语句与主语言语句,所有SQL语句必须加前缀EXEC SQL,主语言为C语言时,语句

2020-06-13 00:05:34

【数据库】关系查询处理和查询优化

关系数据库系统的查询处理一、关系数据库系统的查询处理1.查询处理步骤关系数据库管理系统查询处理阶段 :1)查询分析 :对查询语句进行扫描、词法分 析和语法分析词法分析:从查询语句中识别出正确的语言符号语法分析:进行语法检查2)查询检查查询检查的任务合法权检查视图转换安全性检查完整性初步检查根据数据字典中有关的模式定义检查语句中的数据库对象,如关系名、属性名是否存在和有效如果是对视图的操作,则要用视图消解方法把对视图的操作转换成对基本表的操作根据数据字典中的用户权限和完整性

2020-06-11 00:37:22

【数据库】数据库设计

数据库设计概念数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构, 并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。一、数据库设计的特点数据库建设的基本规律三分技术,七分管理,十二分基础数据管理数据库建设项目管理企业(即应用部门)的业务管理基础数据收集、入库更新新的数据结构(数据)设计和行为(处理)设计相结合。

2020-06-10 14:43:19

【设计模式】中介者模式(Mediator)

引入在面向对象系统的设计和开发过程中,对象之间的交互和通信是最为常见的情况,因为对象间的交互本身就是一种通信。在系统比较小的时候,可能对象间的通信不是很多、对象也比较少之我们可以直接硬编码到各个对象的方法中。当系统规模变大,对象的量变引起系统复杂度的急剧增加,对象间的通信也变得越来越复杂,这时候我们就要提供一个专门处理对象间交互和通信的类,这个中介者就是Mediator模式。Mediator模式将对象间的交互和通信封装在一个类中,各个对象间的通信不必显式去声明和引用,大大降低了系统的复杂性能(了解

2020-06-09 22:39:08

【设计模式】职责链模式(Chain of Responsibility)

问题抽象客户端发出一个请求,会有很多对象都可以来处理这个请求,而且不同对象的处理逻辑是不一样的。对于客户端而言,无所谓谁来处理,反正有对象处理就可以了。而且在上述处理中,还希望处理流程是可以灵活变动的,而处理请求的对象需要能方便地修改或者是被替换掉,以适应新的业务功能的需要。职责链模式十多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连城一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。模式结构抽象处理者(Handler)角色定义出一个处理请求的

2020-06-09 20:59:30

【设计模式】命令模式(Command)

概述命令模式又称为行动(Action) 模式或交易(Transaction) 模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化;对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装。命令模式把命令的责任和执行命令的责任分割开,委派给不同的对象。模式结构示意性代码namespace 命令模式{ class Receiver { public void Action()

2020-06-09 20:13:18

【设计模式】桥接模式(Bridge)

面向对象:松耦合高内聚面向对象系统追求的目标就是尽可能地提高系统模块内部的内聚(Cohesion)、尽可能降低模块间的耦合(Coupling) 。然而这也是面向对象设计过程中最难把握的部分。GOF在提出Bridge模式的时候指出:Bridge模式的用意是“将 抽象化(Abstraction) 与 实现化(Implementation) 脱耦,使得二者可以独立地变化”。耦合和脱耦耦合就是两个实体的行为的某种强关联。将它们的强关联去掉,就是耦合的解脱,或称脱耦。脱耦是指将抽象化和实现化之

2020-05-31 19:47:31

【设计模式】单例模式(Singleton)

Singleton模式是设计模式中最为简单、最为常见、最容易实现,也是最应该熟悉和掌握的模式。公司企业在招聘的时候为了考察员工对设计的了解和把握,考的最多的就是Singleton模式。

2020-05-31 19:04:38

【设计模式】组合模式(Composite)

引入商品类别树的节点被分成两种,一种是容器节点,另一种是叶子节点。容器节点可以包含其他容器节点或者叶子节点组合模式组合模式有时又叫做部分——整体模式(Part-Whole)。组合模式将对象组织到树结构中,可以用来描述整体与部分的关系。组合模式可以使客户端将单纯元素与复合元素同等看待。一个树结构由两种节点组成:树枝节点和树叶节点。树枝节点可以有子节点,而一个树叶节点不可以有子节点。除了根节点外,其它节点有且只有一个父节点。模式结构抽象构件(Component)角色这是一个抽象角色

2020-05-24 23:58:19

【设计模式】备忘录模式(memento)

Memento模式的关键就是要在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存这个状态。这样以后就可以利用该保存的状态实施恢复操作。模式结构Originator(原发器)创建一个备忘录,并存储它的当前内部状态,也可以使用备忘录来回复其内部状态。Memento(备忘录)储存原发器的内部状态,备忘录的设计一般可以参考原发器的设计,根据实际需要确定备忘录类中的属性。Caretaker(负责人)负责人又称为管理者,在负责人类中可以储存一个或多个备忘录对象,他只负责存储对象而不能修改

2020-05-24 23:16:11

【设计模式】适配器模式(Adapter)

适配器模式(Adapter)适配器模式把一一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。软件系统设计和开发的问题在软件系统设计和开发中,这种问题也会经常遇到:有时为了完成某项工作购买了一个第三方的库来加快开发。这就带来了一个问题:我们在应用程序中已经设计好了接口,与这个第三方提供的接口不一致,为了使得这些接口不兼容的类(不能在-起工作)可以在一起工作,Adapter模式提供了将一个类(第三方库)的接口转化为客户(购买使用者)希望接口的方法。

2020-05-10 21:21:26

【设计模式】状态(State)模式

状态模式主要解决的是当控制一个对象状态转换的条侏表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的系列类当中,可以把复杂的逻辑简化。状态模式允许一个对象在其内部状态改变时改变它的行为,这个对象看起来似乎修改了它的类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表系不同状态的一系列类当中,可以把复杂的逻辑简化。每个人、事务在不同的状态下会有不同表现动作,而一个状态又会在不同的表现下转移到写一个不同的状态。在State模式中我们将状态逻辑和

2020-05-10 18:46:33

【设计模式】抽象工厂(Abstract Factory)模式

抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。为了方便引进抽象工厂模式引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。图中一共有四个产品族,分布于三个不同的等级结构中。只要指明一个产品所处的产品族一集它所属的等级结构中就可以为以确定这个产品。引进抽象工厂格式所谓的抽象工厂是指一个工厂等级结构可以常见出分属于不同产品等级结构的一.

2020-05-10 16:50:47

【设计模式】观察者(Observer)模式

观察者模式又名发布-订阅(Publish/Subscribe)模式模型-视图(Model/View)模式源-监听器(Source/Listener)模式从属者(Depenfents)模式观察者模式定义了一种一对多的依赖关系,让多个观察和对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。...

2020-04-25 21:14:46

【设计模式】建造者(生成器Builder)模式

将一个复杂对象的构件与它的表示分离,是的同样的构建可以创建不同的表示。对象性质的建造有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。有些情况下,一个对象的一些性质必须按照某个顺序复制才有意义。在某个性质没有赋值之前,另一个性质则无法赋值。这些情况是的性质本身的建造涉及到复杂的商业逻辑。这时候,此对象相当于一个有待建造的产品,而对象的这些性质...

2020-04-18 22:24:36

【设计模式】外观(门面)模式

Facade Pattern外部与一个子系统的通信必须通过一个统一的外观(Facade)对象进行,这就是外观模式。外观模式要求一个子系统的外部与其内部的通信必须通过一个统一的外观(Facade)对象进行。外观模式提供一个高层次的接口,是的子系统更易于使用。外观模式的外观类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与外观对象打交道,而不需要与子系统内部的很多对象打交道。外观模式...

2020-04-18 21:25:25

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。