自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

越一步之距

下蹲是为了跳得更远

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

转载 RESTful和SOAP比较

1、RESTful一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000年 Roy Fiel

2017-10-18 16:44:03 19046 1

转载 merge用法

Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进

2017-10-18 15:55:57 934

转载 LINQ to SQL语句

原文:http://www.cnblogs.com/jara/p/3473996.htmlLINQ to SQL语句(1)之Where适用场景:实现过滤,查询等功能。说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:

2017-10-12 10:37:21 590

原创 HTTPS 与 HTTP 介绍

HTTPS 与 HTTP 有什么不同?HTTP 是过去很长一段时间我们经常用到的一种传输协议。HTTP 协议传输的数据都是 未加密的,这就意味着用户填写的密码、帐号、交易记录等机密信息都是明文,随时可能 被泄露、窃取、篡改,被黑客加以利用,因此使 HTTP 协议传输隐私信息非常不安全。HTTPS 是一种基于 SSL 协议的网站加密传输协议,网站安装 SSL 证书后,使用 HTTPS 加密协

2017-10-11 17:41:38 788

原创 Windows下Redis配置

一、Redis介绍Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings),散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和地理空间(geospatial) 索引半径查询。 Redi

2017-10-02 06:38:04 7078

原创 Nuget 服务搭建

一.Nuget介绍Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。Nuget是 ASP .NET Gallery的一员。NuGet是免费、开源的包管理开发工具,专注于在 .NET应用开发过程中,简单

2017-09-30 17:15:40 1036 1

原创 MVC、MVP、MVVM模式

MVC通信方式一MVC 是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 MVC 中的 View的确

2017-09-29 08:58:13 453

转载 AutoMapper在的项目中的使用

先说说DTODTO是个什么东东?DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已。为什么要用DTO?1、DTO更注重数据,对领域对象进行合理封装,从而不会将领域对象的行为过分暴露给表现层2、DTO是面向UI的需求而设计的,而领域模型是面向业务而设计的。因此DTO更适合于和表现层的交互,通过DTO我

2017-09-28 10:21:54 914

转载 数据库字段varchar和Nvarchar区别

Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示如果还为了这个纠结,就直接看看后面的解说,做决定吧。一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。 sql server中的varchar和Nvarchar有什么区别?答:varchar(n)长度

2017-09-25 16:51:27 2795

转载 Redis、SSDB、Memcache和MongoDB的区别

一.Memcached1.1Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。 支持直接配置为session handle。1.2Memcached的局限性:只支持简单的key/value数据结构

2017-09-15 22:40:02 772

原创 创建型模式—单例模式

单例模式(Singleton)定义:要求一个类有且仅有一个实例,并且提供了一个全局的访问点,在同一时刻只能被一个线程所访问。  单例模式的特点:  1>、单例类只能有一个实例。  2>、单例类必须自身创建唯一实例。  3>、单例类必须给所有其它对象提供唯一实例。  单例模式使用注意点:  1>、不要使用单例模式存取全局变量。这违背了单例模式的用意,最

2017-08-21 11:15:20 347

原创 创建型模式—原型模式

原型模式(Prototype)用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。Prototype Pattern也是一种创建型模式,它关注的是大量相同或相似对象的创建问题。应用原型模式就是建立一个原型,然后通过对原型来进行复制的方法,来产生一个和原型相同或相似的新对象,或者说用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式具有以下特点:  ◊对客户隐藏了具体...

2017-08-18 11:30:37 332

转载 包、元包和框架

.NET Core 是一种由 NuGet 包组成的平台。 有些产品体验受益于包的细粒度定义,而另一些受益于粗粒度的定义。 为了适应这种二元定义,一款好的产品应该作为一组细粒度的包发布,然后在更粗的粒度组块中进行描述,单个包的正式的名字叫做“元包”。每个 .Net Core 包都支持以框架形式通过多个 .Net 实现代码运行。 其中有些框架是传统框架,例如表示 .NET Framework

2017-08-11 09:54:31 663

转载 .NET Standard

.NET Standard是一套正式的 .NET API 规范,有望在所有 .NET 运行时中推出。 推出 .NET Standard 的背后动机是要提高 .NET 生态系统中的一致性。 ECMA 335 持续为 .NET 运行时行为建立统一性,但适用于 .NET 库实现的 .NET 基类库 (BCL) 没有类似的规范。.NET Standard 可实现以下重要情境:为要实现的

2017-08-10 10:02:32 1772

转载 .NET Core

.NET Core 是一个通用开发平台,由 Microsoft 和 GitHub 上的 .NET 社区共同维护。 它是跨平台的,支持 Windows、macOS 和 Linux,并且可用于设备、云和嵌入式/IoT 方案。以下特征对 .NET Core 进行了最好的定义:部署灵活:可以包含在应用或已安装的并行用户或计算机范围中。跨平台:可以在 Windows、macOS 和 Linu

2017-08-09 09:33:52 990

转载 NET 体系结构组件

.NET 由多个主要组件组成。 它具有一个名为 .NET 标准库的标准库,该标准库是一个可随处运行的大型 API 集。 该标准库由三个 .NET 运行时实现,即 .NET Framework、.NET Core 和 Mono for Xamarin。 .NET 语言还在任何 .NET 运行时上运行。 此外,还可以通过每个平台上的一些工具生成项目。 无论选择何种运行时,这些工具都相同。

2017-08-08 09:44:38 663

原创 创建型模式—建造者模式

建造者模式(Builder)将复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。在软件系统中,有时候面临一个复杂对象的创建工作,该对象通常由各个部分子对象用一定的算法构成,或者按一定的步骤组合而成;这些算法和步骤是稳定的,而构成这个对象的子对象却经常由于需求的变化而不断变化。在建造者模式中,Director规定了创建一个对象所需要的步骤和次序,Builder则提供了一些完成这些步骤的...

2017-08-07 12:14:42 328

原创 创建型模式—抽象工厂模式

抽象工厂(Abstract Factory)模式意图:为创建一组相关或相互依赖对象提供了一个接口,而且无需指定它们的具体类。抽象工厂可以向客户提供一个接口,是客户可以在不必指定产品具体类型的情况下,创建多个产品家族中的产品对象,它强调的“系列对象”的变化。在抽象工厂模式中,产品的创建由ConcreteFactory来完成,从结构图中可以看出,抽象工厂模式的ConcreteFactory不是负责一种...

2017-07-28 14:42:20 367

原创 创建型模式—工厂方法模式

工厂方法模式是以一个类的实例化延迟到其子类。工厂方法模式用于在不指定待创建对象的具体类的情况下创建对象。工厂方法模式的主要意图是隐藏对象创建的复杂性。◊使用工厂方法在一个类的内部创建对象通常比直接创建对象更灵活  ◊工厂方法模式通过面向对象的手法,将所要创建的具体对象的创建工作延迟到子类,从而提供了一种扩展的策略,较好的解决了紧耦合的关系结构图支付接口使用工厂方法模式结构图namespace Li...

2017-07-14 17:26:41 359

原创 创建型模式—简单工厂模式

在面向对象编程中,一般方法是用一个new操作符产生一个对象的实例。但是在一些情况下,用new操作符直接生成对象会带来一些问题。首先,要使用new运算符创建一个对象必须清楚所要创建的对象的类信息,包括类名、构造函数等,而有时并不现实。其次许多类型的对象创建需要一系列的步骤,可能需要计算或取得对象的初始设置,选择生成哪个子对象实例,或在生成需要的对象之前必须生成一些辅助功能的对象。在这些情况下,新对象...

2017-07-13 18:19:47 372

原创 设计模式—创建型模式

创建型模式即用来进行对象创建的的模式,创建型模式的目标是简化对象的创建和方便对象的管理。  ◊ 创建型模式(Creational Pattern)关注对象的创建过程  ◊ 创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例的创建细节  ◊ 创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让...

2017-07-13 15:56:12 334

原创 内部排序—堆排序

堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]=Key[2i+1]&&key>=key[2i+2]即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]堆排序的基本思想是对一组待排序记录的关键字,首先按堆的定义排成一个序列(即建立初始

2017-06-27 21:44:12 349

原创 内部排序—基数排序

基数排序的思想是设立r个队列,队列编号分别为0、1、2、…r-1。首先按最低有效位的值把n个关键字分配到这r个队列中;然后从小到大将各队列中的关键字依次收集起来;接着按次低有效位的值把刚收集起来的关键字分配到r个队列中。重复上述分配和收集过程,直到最高有效位。这样得到一个从小到大的有序关键字序列。为了减少记录的移动次数,队列可以采用链式存储分配,称为链队列。每个链队列有2个指针,分别指向队头和队尾

2017-06-10 08:51:50 589

原创 内部排序—归并排序

所谓“归并”,是将两个或两个以上的有序文件合并成一个新的有序文件。归并排序是把一个有n个记录的无序文件看成是有n个长度为1的有序子文件组成的文件,然后进行两两归并,得到n/2个长度为2或1的有序文件,再两两归并,如此重复,直到最后形成包含n个记录的有序文件为止。这种反复将两个有序文件归并成为一个有序文件的排序方法称为两路归并排序。    两路归并排序的核心操作是将一维数组中前后相邻的两个有序序

2017-06-09 22:22:55 709

原创 内部排序—快速排序

快速排序的基本思想是:通过一趟排序将待排序的记录划分成两个部分,其中一部分记录的关键字均不大于另一部分记录的关键字,然后再分别对这两部分记录继续进行快速排序,以达到整个序列有序。    用一维数组存储记录,一趟快速排序的具体做法是:设置两个指针i和j,他们的初始值分别指向第一个记录和最后一个记录。设置一个枢轴记录(通常为第一个记录)的关键字为pivotkey,则首先从j所指的位置向前搜索,找到

2017-06-08 20:03:18 874

原创 内部排序—希尔排序

希尔排序的基本思想是:现将整个待排序的序列分成若干个子序列,然后分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。具体做法是:先取一个小于n的整数d1作为第一个增量,把文件全部分成d1个组,即所有距离为d1倍数序号的记录放在同一个组中,在各组内进行直接插入排序;然后取第二个增量d2重复上述分组和排序工作,依次类推,直到所取得增量为1。即所有的记录放在同一组进行直

2017-06-07 21:20:14 566

原创 内部排序—冒泡排序

n个记录进行冒泡排序的基本方法是:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换这2个记录的值,然后比较第二个记录和第三个记录得关键字,以此类推,直到第n-1个记录和第n个记录得关键字比较过为止。上述过程称为第一趟冒泡排序,其结果是关键字最大的记录被交换到第n个记录的位置上。然后进行第二趟冒泡排序,对前n-1个记录进行同样的操作,其结果是关键字次大的记录被交换到第n-1个记

2017-06-06 21:38:11 328

原创 内部排序—简单选择排序

n个记录进行简单选择排序的基本方法是:通过n-i(1在次关键字之间比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换,当i等于n时偶有记录有序排列。    简单选择排序是一种不稳定的排序方法,时间复杂度为O (n2)。在排序过程中仅需要一个元素作为辅助空间用于数组元素值的交换,空间复杂度为O(1)。/// /// 简单选择排序/// 思想:每次从待排序的数组

2017-06-05 21:28:24 276

原创 内部排序—直接插入排序

直接插入排序是一种简单的排序方法,具体做法是:在插入第i个记录时,R1、R2…Ri-1已经排好序,这时候将Ri的关键字Ki依次与关键字Ki-1、Ki-2等进行比较,从而找到应该插入的位置并将Ri插入,插入位置及其后的记录依次向后移动。 直接插入排序法在最好的情况下(待排序列已按照关键码有序)每趟排序只需要做1次比较而且不需要移动元素,因此n个元素排序时的总比较次数为n-1次,总的移动次数为0次。在

2017-06-02 09:03:35 590

原创 类之间关系-依赖、关联、实现、泛化

类之间各种关系的强弱顺序:依赖 <关联 <聚合 <组合 <实现 =泛化 类之间的关系最常用的有4种,分别是表示类之间使用关系的依赖关系(Dependency)、表示对象之间结构关系的关联关系(Association)、表示类之间一般和特殊关系的泛化关系(Generalization)、表示类和接口的实现关系(Realization)。1、依赖关系:用于表示类之间的使用关系。依赖就是一个类A使用到了

2017-05-27 13:18:29 1873

原创 常用算法介绍

递归法 算法定义:递归法是指一个过程或函数在定义或说明中又直接或间接调用自身的一种方法。在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。在递归调用的过程中系统为每一层的返回点、局部量开辟了栈来存储。 算法原理:递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。 特征和典型

2017-05-26 22:08:12 1536

原创 uml介绍

        Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计(OOA&amp;D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅...

2017-05-26 11:58:37 394

转载 软件开发岗位职责描述

软件开发岗位职责

2017-05-24 10:49:01 38820 1

原创 设计模式原则—组合重用原则

就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的,组合能更好的实现封装,比继承具有更大的灵活性和更稳定的结构。该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。

2017-05-08 10:08:18 2296 1

原创 设计模式原则—开闭原则(OCP)

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。开闭原则是面向对象设计中最基础的设计原则,

2017-04-16 11:06:49 488

原创 设计模式原则—迪米特原则

定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。迪米特法则又叫最少知道原则,最早是在1987年由美国Northeastern University的Ian Holland提出。通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑

2017-04-14 19:27:40 357

原创 设计模式原则—接口隔离原则(ISP)

定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。接口隔离原则的含义是:建立单一接口,不要建立

2017-04-13 21:46:35 406

原创 设计模式原则—依赖倒置原则(DIP)

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接

2017-04-12 20:43:18 580

原创 设计模式原则—里氏替换原则(LSP)

子类应当可以替换父类并出现在父类能够出现的任何地方。这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义2:所有引用基

2017-04-11 20:51:48 932

原创 设计模式原则—单一职责原则(SRP)

定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 也就是说,一个类应该只有一个职责。如果有多个职责,就相当于把这些职责耦合在一起,一个职责的变化会削弱或抑制这个类完成其他职责的能力,引发类的变化原因会有多个。所以在构造一个类的时候,将类的不同职责分离到多个类或者接口中,确保引起类的变化原因只有一个。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需

2017-04-11 20:40:18 710

空空如也

空空如也

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

TA关注的人

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