自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

转载 5种创建型设计模式-单例模式(Singleton Pattern)

保证系统中只存在一个实例class MultiThread_Singleton{ private static volatile MultiThread_Singleton instance = null; private static object lockHelper = new object(); private MultiThread_Singleton() ...

2019-04-02 16:24:19 170

转载 5种创建型设计模式-建造者模式(Builder)

//创建老板public class Boss{ public void MakeEmployee(Employee employee) { employee.BuildFrame(); employee.BuildLenses(); }}//创建员工public abstract class Employee{ //生产...

2019-04-02 16:16:28 155

转载 5种创建型设计模式-抽象工厂模式(Abstract Factory)

工厂方法模式:工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性但是在实际应用中,一个工厂不止会创建单一的产品,因为现在的工厂都多元化了,一个工厂创建一系列的产品,这就引入了抽象工厂的概念抽象工厂模式抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责...

2019-04-02 15:48:20 175

翻译 5种创建型设计模式-工厂方法模式(Factory Method)

定义一个用户创建对象的接口,让子类决定实例哪一个类。Factory Method使一个类的实例化延迟到子类适用性:1.当一个类不知道它所必须创建的对象类的时候。2.当一个类希望由它子类来指定它所创建对象的时候。3.当类将创建对象的职责委托给多个帮助子类中的某个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。public abstract class Car{ pub...

2019-03-25 16:06:23 288

转载 5种创建型设计模式-原型模式(PrototypePattern)

原型模式(Prototype)用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。Prototype Pattern也是一种创建型模式,它关注的是大量相同或相似对象的创建问题。应用原型模式就是建立一个原型,然后通过对原型来进行复制的方法,来产生一个和原型相同或相似的新对象,或者说用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。public abstract cla...

2019-03-25 14:51:55 287

翻译 23种设计模式----适配器模式(Adapter Pattern)

适配器模式将一个接口转换成另外一个接口,以符合客户的期望。比如现在有一个旧的软件系统,其中有一个组件已经过时了,更新需用到第三方的组件(新组件),但是旧组件的接口和新组件的接口不同,同时,您又不想去改变现有的代码,此时可使用适配器模式。您可以通过适配器模式将新组件的一些接口转换成为你所期望的接口,这样就无需要改变原来的代码,轻松实现从旧组件更新到新组件了。比如一个 WINE 的工具,它允许用户...

2019-03-25 14:10:20 128

转载 23种设计模式----桥接模式(Bridge Pattern)

如果一个抽象类或接口有多个具体实现子类,而这些子类之中有内容或概念上重叠,需要我们把抽象的共同部分各自独立开来:即原来是准备放在一个接口里,现在需要设计两个接口——抽象接口和行为接口。然后再分别针对各自的具体子类定义抽象接口和行为接口的方法和调用关系。桥接模式的用意是将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。public abst...

2019-03-22 16:25:42 165

原创 23种设计模式----装饰器模式(DecoratorPattern)

对一个类添加一些额外的装饰(功能)public abstract class Tank{ public abstract void Run();}public class T50 : Tank{ public override void Run() { Console.WriteLine("T50坦克平均每时运行30公里"); }}...

2019-03-21 16:14:35 103

转载 23种设计模式----组合模式(Composite Pattern)

组合模式主要用来处理一类具有“容器特征”的对象——即它们在充当对象的同时,又可以作为容器包含其他多个对象。public abstract class Shape{ public string name; public Shape(string name) { this.name = name; } public abstract do...

2019-03-19 16:39:51 161

转载 23种设计模式----外观模式(Facade Pattern)

外观模式主要解决的问题:当有多个类要处理时,需要一个个类去调用,没有复用性和扩展性。外观模式将处理子类的过程封装成操作,简化客户端的调用过程。public class SubSystemOne{ public void MethodOne() { Console.WriteLine(" SubSystemOne Method"); }}publi...

2019-03-19 15:46:46 121

转载 23种设计模式----享元模式(FlyWeightPattern)

在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。static void Main(string[] args){ // 定义外部状态,例如字母的位置等信息 ...

2019-03-19 15:19:43 162

转载 23种设计模式----代理模式(Proxy Pattern)

代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户的不同需求。代理模式的结构图比较简单,但是在真实的使用和实现过程中要复杂很多...

2019-03-18 16:48:39 134

转载 23种设计模式----模板方法(Template Method)

你去银行取款的时候,银行会给你一张取款单,这张取款单就是一个模板,它把公共的内容提取到模板中,只留下部分让用户来填写。在软件系统中,将多个类的共有内容提取到一个模板中的思想便是模板方法模式的思想。模板方法模式是基于继承的代码复用基本技术,在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。在模板方法模式中,需要准备一个抽象类,将部分逻辑以具体方法以及具体构造函数形...

2019-03-18 16:16:36 140

转载 23种设计模式----命令模式(CommandPattern)

命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。public class Tv{ public int cu...

2019-03-18 15:19:10 133

转载 补充:yield关键字用法

使用yield return返回集合,不是一次性加载到内存中,而是客户端每调用一次就返回一个集合元素,是一种"按需供给"。class Program{ static Random r = new Random(); static IEnumerable<int> GetList(int count) { List<int> lis...

2019-03-15 14:08:23 226

转载 23种设计模式----迭代器模式(IteratorPattern)

迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式。简单来说,迭代器模式使得你能够获取到序列中的所有元素而不用关心是其类型是array,list,linked list或者是其他什么序列结构。这一点使得能够非常高效的构建数据处理通道(data pipeline)–即数据能够进入处理通道,进行一系列的变换,...

2019-03-14 16:59:02 179

翻译 23种设计模式----观察者模式(Observer Pattern)

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。public abstract class Observer{ public abstract void Update();}public class Subject{ private List<Observer> subList = new List&l...

2019-03-13 15:38:23 147

翻译 23种设计模式----解释器模式(Interpreter Pattern)

在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。interface IExpression{ void Interpret(StringBuilder sb);}public class ...

2019-03-12 16:03:23 173

翻译 23种设计模式----中介者模式(Mediator Pattern)

中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。中介者模式设计两个具体对象,一个是用户类,另一个是中介者类,根据针对接口编程原则,则需要把这两类角色进行抽象,所以中介者模式中就有了4类角色,它们分别是:抽象中介者角色,具体中介者角色、抽象同事类和具体同事类。中介者类是起到协调各个对象的...

2019-03-12 10:20:28 158

翻译 23种设计模式----职责链模式(Chain of Responsibility Pattern)

责任链模式指的是——某个请求需要多个对象进行处理,从而避免请求的发送者和接收之间的耦合关系。将这些对象连成一条链子,并沿着这条链子传递该请求,直到有对象处理它为止public class BehaviourRequest{ public double money { get; set; } public string activityName { get; set; } ...

2019-03-11 16:46:51 110

翻译 23种设计模式----备忘录模式(Memento Pattern)

在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以把该对象恢复到原先的状态。发起人角色:记录当前时刻的内部状态,负责创建和恢复备忘录数据。备忘录角色:负责存储发起人对象的内部状态,在进行恢复时提供给发起人需要的状态。管理者角色:负责保存备忘录对象。public class Person{ public string name { get; s...

2019-03-07 13:30:31 220

翻译 23种设计模式----策略模式(Strategy Pattern)

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。public abstract class Calculate{ public abstract void cal()...

2019-03-06 17:16:05 175

翻译 23种设计模式----访问者模式(Visitor Pattern)

由于需求的改变,某些类常常需要增加新的功能,但由于种种原因这些类层次必须保持稳定,不允许开发人员随意修改。对此,访问者模式可以在不更改类层次结构的前提下透明的为各个类动态添加新的功能。访问者模式通过双重分派(double dispatch)的方法来透明的为各个类添加新的功能,第一重分派是指Accept方法的多态,第二重分派是指Visit方法的多态。public abstract class V...

2019-03-06 16:42:58 173

翻译 23种设计模式----状态模式(State Pattern)

*状态模式(State Pattern)* **允许一个对象在其内部状态改变时自动改变其行为,对象看起来就像是改变了它的类。** 例子:黄灯改变会变成红灯,红灯改变会变成绿灯。1)抽象状态类(State类):抽象状态类定义了一个具体状态类需要实现的行为约定。2)具体状态类(...

2019-03-05 17:06:10 235

基于Dapper操作数据库Demo

1、开源Dapper、Dapper 2、支持各种数据库引擎操作 3、不需要写sql语句,利用ORM映射自动生成sql

2022-02-23

空空如也

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

TA关注的人

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