- 博客(52)
- 收藏
- 关注
转载 通俗易懂设计模式解析——命令模式
前言 今天我们一起来看行为型设计模式中的命令模式、何为命令模式呢?先谈命令——我现在需要对某一条信息进行删除,我进行点击删除按钮。后台执行删除的命令、对信息进行删除。那么我们要讲的命令模式又是什么呢?命令模式就是把一个操作或者行为抽象为一个对象。然后通过对命令的抽象化来使得发出命令的职责和执行命令的职责分隔开。简单来说命令模式就是解决命令的请求者和命令的执行者之间的耦合关系的。...
2019-09-27 09:25:00
275
转载 .Net Core 3.0 gRPC部署问题解决
前言 .Net Core3.0终于如约而至的来了。在3.0中增加了许多东西、也有了许多的变化。今天我们看的就是在3.0中使用gRPC并遇到的问题。gRPC现在可以非常方便简洁的在.Net Core中使用了,今天我也是尝试了一下,但是不幸了是遇到了一些阻碍。我们一起看看是啥问题吧。gRPC介绍 gRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议...
2019-09-26 09:18:00
2301
转载 通俗易懂设计模式解析——模板方法模式
前言 我们学习了解完了创建型设计模式和结构型设计模式,今天我们开始学习并了解行为型设计模式。今天我们首先来看这么一个设计模式——模板方法模式。这个模式我们在平常开发中总会不自觉的使用到。就像我们平时一样的各种网站模板、建立模板、PPT模板等等。啥意思呢?简单,也就是把共同的东西拿出来,你需要具体去实现你自己的那么就另外加上自己的特有行为就是了。我们一起来看看详细的解释介绍吧。模...
2019-09-25 09:35:00
235
转载 jenkins在windows上自动化部署.Net(.Net Core)项目
前言 什么是持续集成呢?Continuous integration(CI)。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。 如果没有持续...
2019-09-21 09:50:00
1094
转载 通俗易懂设计模式解析——代理模式
前言 今天讲的是结构型设计模式中的最后一个,这个模式也就是代理模式,在前段时间我写的一篇关于正向代理和反向代理的文章。虽说此代理非彼代理。但是代理一词还是具有相似的含义的。这里我们继续使用文章中的代购一个例子来讲述一下代理模式吧,人不方便去购买哪些物品,这时就有一个中间人,他来购买。他代替我去购买。他也就充当了那个代理的职责。我们继续往下看吧。代理模式介绍一、来由 在...
2019-09-12 09:18:00
128
转载 通俗易懂设计模式解析——享元模式
前言 今天我们继续讲述设计模式,今天提及的是享元模式,享——共享。之前不是出现了一系列共享的东西吗?为啥呀,还不就是有些东西每个人都需要,但是每个人都去买一个又有点浪费。所以出现共享。话费一定的经济可以使用,使用完成之后又归还。这就是享。分享共享。今天讲的享元模式跟这相类似。享元模式——通俗来说也就是共享最小单元的一种模式。我们就一起看看到底啥是这享元模式吧。享元模式介绍...
2019-09-11 09:35:00
149
转载 通俗易懂设计模式解析——外观模式
前言 今天一起来看看外观模式,外观模式也是我们介绍的结构型设计模式的第五个模式了。外观外表,有句话是这么说的人靠衣装 佛靠金装。打扮的好,整理的好。外观靠上去整整齐齐,精气神一下就上来了。在开发中依然如此。客户端完成一个功能,可能需要调用许多的接口来配合。按照开发逻辑一个一个依次对接下来。客户端代码复杂,看上去一团糟。不说其他的,就表面上看起来就不怎么好吧。那么不如我们把调用的接口...
2019-09-06 09:16:00
145
转载 通俗易懂设计模式解析——组合模式
前言 今天介绍的是结构型设计模式中的第四个模式,也就是组合模式(Composite Pattern)。组合模式也好理解,就拿我们电脑的文件及文件夹来说吧,这就是一个较好的组合模式的例子。一个目录下面包含文件及文件夹,文件夹下面也包含文件或文件夹。在这样一层层下来,我们可以想象。他似乎像极了那个树状图。而组合模式是依据树型结构来组合对象。用来表示部分—整体层次关系。组合模式介绍...
2019-09-05 09:05:00
380
转载 通俗易懂设计模式解析——装饰模式
前言 今天介绍的是结构型设计模式中的——装饰模式(Decorator Pattern),也是装饰器模式。装饰也就是装点修饰。例如我们对手机进行装饰,买了一个新的手机,先贴个钢化膜。在带一个壳。偶尔还在背面贴点贴纸。装一些挂件。这些等等行为也就是装饰。生活中的装饰是如此,那么编程中的装饰模式又是如何呢?装饰模式介绍一、来由 在我们平常的软件系统中,经常会面临着向现有的对...
2019-09-04 09:25:00
275
转载 通俗易懂设计模式解析——桥接模式
前言 今天讲解的是结构型设计模式中的第二种——桥接模式。桥接——是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层。一般的交换机,网桥就有桥接作用。这是百科解释。那么今天讲的桥接模式是什么呢?桥接是一个纽带,近年的港珠澳大桥。就充当起三地连接的纽带。那么在设计模式中的桥接模式呢?也是一样,其中组成也是通过桥接、纽带连接。然后组合成所需要的东西的。...
2019-09-03 09:11:00
272
转载 通俗易懂设计模式解析——适配器模式
前言 前面完成了创建型的设计模式的分享,创建型的设计模式解决的是对象创建的问题。今天开始介绍结构型的设计模式,其中结构型设计模式包括:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。结构型设计模式解决的是类与对象的组合关系。今天讲结构型对象中的第一个——适配器模式。适配器模式——顾名思义嘛。在我们平常的理解中,适配器是干啥用的呢?不就是将两个原本不匹配的东西...
2019-09-02 09:03:00
131
转载 通俗易懂设计模式解析——原型模式
前言 前面几章我们介绍了创建型设计模式的部分内容,今天我要说的是创建型设计模式中最后一个——原型模式,原型模式是创建型模式中的一种较为特殊的模式,有个最大的特点是克隆一个现有的对象,在我们日常软件系统开发中,某些对象的创建new即为复杂,而且我们需要使用多个相同的实例,这样如果我们依旧使用new去进行创建。就会增加系统的复杂度和增加代码之间的耦合度。但是我们使用前面介绍的工厂模式的...
2019-08-30 11:39:00
147
转载 通俗易懂设计模式解析——建造者模式
前言 在本篇文章中,我们重点介绍建造者模式(Builder Pattern),建造者模式顾名思义,与建造创建相关。事实也是如此建造者模式也是创建型中的一种。在我们平常生活中会有比较复杂的东西的组成过程。比如电脑组成、手机组成、电视组成、等等。就拿电脑组成来说。可以由主板、Cpu、显卡等等组成。但是组成的算法步骤是一样的。只是不同的东西组装起来结果不一样而已。建造者模式介绍一...
2019-08-28 09:09:00
228
转载 通俗易懂设计模式解析——抽象工厂模式
前言 前面介绍了单例模式及工厂模式相关知识及示例,今天主要介绍的是抽象工厂模式,上一篇我们讲了工厂模式。将创建对象的任务委托给子类,延迟创建。解决工厂中责任的划分。实现具体工厂与产品之间的一一对应。解决的是”单个对象”的问题。 华为工厂除了生产华为手机之外。肯定也会有原件配套的充电线和耳机。这时工厂对应的是一套产品该如何解决了呢?显然不再适合使用工厂模式了。今天将的抽象工厂模...
2019-08-26 16:50:00
209
转载 通俗易懂设计模式解析——工厂模式(Factory Method)
前言 上一篇我们介绍了单例模式,今天给大家讲一个比较简单的模式——工厂模式(Factory Method),工厂模式又是什么呢?顾名思义,工厂——生产制造东西的地方。那么应用在程序当中该如何使用、并且又起到什么效果呢?以至于为什么用工厂模式呢? 之前我们说的OCP原则(开放封闭原则),对扩展开放,对修改封闭这一原则。在工厂模式中有极好的体现,对对象及类进行极好的封装。使其减少...
2019-08-24 14:10:00
223
转载 通俗易懂设计模式解析——单例模式
一、前言 在上一节中我们对设计模式进行了一定的介绍及分类。设计模式分为创建型、结构型、行为型。创建型模式——主要负责对象的创建。结构型职责——主要负责处理类与对象的组合。行为型模式——主要负责类与对象交互中的职责的分配问题。今天我们也是讲述介绍创建型模式中的第一个模式——单例模式。二、单例模式介绍 (一)来由 单例模式(Singleton Pattern)是最简...
2019-08-23 14:00:00
183
转载 C#设计模式开启闯关之路
前言背景 这是一条望不到尽头的编程之路,自踏入编程之路开始。就面临着各式各样的挑战,而我们也需要不断的挑战自己、不断学习充实自己、打好坚实的基础。以使我们可以走的更远。刚踏入编程的时候。根据需求编程,需求改代码改。需求加代码加。重复来重复去。一切都觉得还不错。功能实现了,项目跑起来了。但是真的就不错了吗?当然不是,也许过了几年你再回头看这些代码或许你也不知道写的啥了。这样写出来的代...
2019-08-22 15:41:00
137
转载 C#之反射、元数据详解
前言 在本节中主要讲述自定义特性、反射。自定义特性允许把自定义元数据与程序元素关联起来。这些元数据是在编译过程中创建的,并嵌入程序集中。反射是一个普通的术语,它描述了在运行过程中检查和处理程序元素的功能。例如,反射运行完成以下任务:枚举类型的成员实例化新对象执行对象的成员查找类型的信息查找程序集的信息检查应用于某个类型的自定义特性创建和...
2019-08-16 16:03:00
425
转载 .Net异步编程详解入门
前言 今天周五,早上起床晚了。赶着挤公交上班。但是目前眼前有这么几件事情。刷牙洗脸、泡牛奶、煎蛋。在同步编程眼中。先刷牙洗脸,然后烧水泡牛奶。再煎蛋,最后喝牛奶吃蛋。毫无疑问,在时间紧促的当下。它完了,稳的迟到、半天工资没了。那么异步编程眼中,或许还有一丝解救的希望。先烧水,同时刷牙洗脸。然后泡牛奶,等牛奶不那么烫的时候煎个蛋。最后喝牛奶吃蛋。也许还能不迟到。在本篇文章中将围绕这个...
2019-08-09 16:32:00
367
转载 .NET----错误和异常处理机制
前言 错误的出现并不总是编写程序的人的原因,有时应用程序会因为应用程序的最终用户引发的动作或运行代码的环境发生错误。无论如何,我们都应预测应用程序中出现的错误,并相应的进行编码。 .Net改进了处理错误的方式。C#处理错误的机制可以为每种错误提供自定义处理方式,并把识别错误的代码与处理错误的代码分别开来。异常类 在C#中当出现某个特殊的异常错误条件时,就会创建抛出一...
2019-08-07 16:57:00
324
转载 .Net集合详解
前言 前面几篇文章讲了泛型、讲了数组,都有提到集合,这一节重点对集合进行详细解说。本文主要使用各种集合类型。以至于评估其性能,针对不同的场景选择不同的集合使用。集合分类详解一、列表 列表的创建var intList=new List<int>(); 创建一个容量为10 的集合List<int> in...
2019-08-02 17:06:00
823
转载 Docker 安装部署Sql Server
前言 在如今,容器化概念越来越盛行,.Net Core项目也可以跨平台部署了,那么思考下Sql Server能不能呢?当然是可以的啦。本文今天就是介绍Docker部署配置和连接Sql Server。本文基于Centos7。配置Docker链接Sql Server 前提条件(至少2 GB的磁盘空间。至少2 GB的RAM)。我们现在开始配置安装: 查询并找到Docker...
2019-07-31 09:11:00
194
转载 数组(ArrayPool数组池、Span<T>结构)
前言 如果需要使用相同的类型的多个对象,就可以使用集合和数组,这一节主要讲解数组,其中会重点涉及到Span<T>结构和ArrayPool数组池。我们也会先涉及到简单的数组、多维数组、锯齿数组、Array类。简单的数组、多维数组、锯齿数组 简单的数组介绍 数组的声明:Int [] myArray; 初始化:myArray=new ...
2019-07-26 09:04:00
1299
转载 泛型协变与抗变(二)
前言 在.NET 4之前,泛型接口是不变的。.NET 4通过协变和抗变为泛型接口和泛型委托添加了一个重要的扩展。协变和抗变指对参数和返回值的类型进行转换。 我们来看下到底什么是协变什么是抗变: 如果某个返回的类型可以由其基类替换,那么这个类型就是支持协变的 如果某个参数类型可以由其派生类替换,那么这个类型就是支持逆变(抗变)的。函数的类型转换 在理解协变...
2019-07-25 09:01:00
151
转载 泛型程序设计详解(一)
前言 泛型是C#和.Net的一个重要概念,泛型不仅是C#编程语言中的一部分,而且与程序集中的IL(Intermediate Language)代码紧密的集成。 在平时编程过程中,常常会出现编写一些差不多的代码块,不同的仅是处理不同的数据类型。比如一个处理int数据的方法,现在新加了string类型的数据。是不是把之前的方法复制一遍,然后修改类型int为string。当然这样的...
2019-07-24 15:03:00
223
转载 面向对象三大特性-----封装、继承、多态
前言 前面有文章写到了面向对象编程和面向对象设计的头五大原则(SOLID五大原则)。今天我们再来谈谈面向对象的三大特性--封装、继承、多态封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。封装只公开某些对外接口,隐藏具体实现细节。增加了一定的安全性,防止信息的泄露以及破坏。 讲到封装,我们...
2019-07-23 09:06:00
165
转载 委托与事件-委托事件案例(三)
前言 这两天一直在想如何结合实际案例来结束委托与事件的讲解,下面讲解两个事例,用来加深对委托及事件的理解。事例一(分页功能) 本场景是用来讲解使用的,具体内容功能需自行填补实现。用委托加事件来实现分页功能的通用。按上一节讲解中的逻辑处理,分为订阅者和发布者,一样的可以先定义订阅者感兴趣的对象,然后发布者,订阅者。再就是主程序调用。 /// <...
2019-07-22 15:06:00
193
转载 委托与事件-事件详解(二)
前言 上一节我们了解学习了委托,委托是类型安全的类,它定义了返回类型和参数的类型。委托类不仅包含对方法的引用,也可以包含对多个方法的引用。 理解委托的一种好的方式是把委托视为是给方法的签名和返回类型指定名称。 今天我们继续来了解委托和事件,现在我们来了解学习一下事件详解。事件 事件基于委托,为委托提供了一种发布/订阅机制,在.Net中随处可见到这种事件,例如在...
2019-07-20 09:57:00
111
转载 委托与事件-委托详解(一)
前言 说起委托和事件,我就想起了再学校的时候,当时死记硬背去记什么是委托什么是事件。记得当时蝼某人问我,委托是什么?但是只知道一点点,就跟他说:打个比方,我要喝水,但是我不去买,我委托你去帮我买水。这就是委托,够直白简单了吧。委托语法使用 语法: public delegate void BuyWaterEventHandler(); 其中 delegate 是...
2019-07-19 17:09:00
108
转载 抽象类及接口详解
一、前言 在上一节中我们讲到抽象类和接口之间的异同,我们一起回顾下其异同。 同: 1、都不可以被实例化 2、都含有声明但未实现的方法 3、都可以被继承 4、其子类必须实现其声明未实现的方法 异: 1、接口是多继承,抽象类是单继承(一个类仅能继承一个抽象类,但可以继承多个接口) 2、抽象类可以包含实现的方法,接口不能包含实现的方法 ...
2019-07-19 09:03:00
145
转载 基础类型详解下
前言在上一节中,我们讲到在c#中所有的类都继承一个基类--System.Object。然后其下又分为俩大类--值类型及引用类型。这一节我们详细讲解值类型和引用类型包含了那些东西及内存的分配堆和栈在我们讲解类型前,我们得先去了解堆和栈是什么,及其区别。我们可以先知道值类型和引用类型的引用都是分配在栈中的,而引用类型的对象分配在堆中的。我们详细看看堆和栈有啥区别及其原理吧堆(...
2019-07-18 16:43:00
80
转载 基础知识详解系列目录
摘要:这个系列是本人在学习与复习当中所遇到或尚且未知的一些知识点,目前逐步学习并详细解读。目录索引:一、c#类型详解上二、基础类型详解下三、抽象类与接口四、委托与事件-委托详解(一)五、委托与事件-事件详解(二)六、委托与事件-委托事件案例(三)七、面向对象三大特性-----封装、继承、多态八、泛型程序设计详解(一)九、泛型协变与抗变(二)...
2019-07-18 09:34:00
100
转载 C#类型详解
一、类型成员类成员定义有(public、private、internal、protected)。Public--对任何类和成员都是公开的,无限制Private--是私有的,仅能由类内部代码访问,如果没有声明,默认使用此关键字Internal--仅能在所属命名空间内部访问Protected--可以由类或者其派生类中的代码访问类成员--字段、方法、属性publ...
2019-07-17 18:24:00
207
转载 Asp .Net Core Excel导入和导出
ASP .Net Core使用EPPlus实现Api导入导出,这里使用是EPPlus 4.5.2.1版本,.Net Core 2.2。在linux上运行的时候需要安装libgdiplus。下面我们看下如何实现导出导入的功能。新建项目ASP.NET Core WebApi 、添加Test类public class Test{ public int Id ...
2019-05-09 18:33:00
1147
转载 Configure、中间件与ErrorHandlingMiddleware全局异常捕获
一、Configure Startup.cs中的Configure方法主要是http处理管道配置、中间件和一些系统配置,其中 IApplicationBuilder: 定义一个类,该类提供配置应用程序请求的机制管道。通过IApplicationBuilder下的run、use方法传入管道处理方法。这是最常用方法,对于一个真实环境的应用基本上都需要比如权限验证、跨域、异常处理等...
2019-04-30 18:41:00
477
转载 SOLID原则(OOD&OOP)
SOLID原则是面向对象编程和面向对象设计的头五大原则。学习及应用这五大原则可以构建一个易于维护和扩展的应用程序,我们一起看看到底是那五大原则。S--单一责任原则(SRP) --Single Responsibility PrincipleO--开放封闭原则(OCP)-- Open-Closed PrincipleL--里式替换原则(LSP)-- Liskov Subs...
2019-04-28 18:14:00
276
转载 .Net Core 权限验证与授权(AuthorizeFilter、ActionFilterAttribute)
在.Net Core 中使用AuthorizeFilter或者ActionFilterAttribute来实现登录权限验证和授权一、AuthorizeFilter新建授权类AllowAnonymous继承AuthorizeFilter,IAllowAnonymousFilterpublic class AllowAnonymous : AuthorizeFilter,...
2019-04-27 18:35:00
2794
转载 Redis--Memched--Cache缓存介绍使用
目录:一、分布式缓存—Redis与Memched的区别1.1、 数据支持类型1.2、 持久性1.3、 内存利用情况1.4、 数据一致性1.5、 性能区别1.6、 总结二、内存缓存—Cache(.Net Core)2.1、 介绍适用场景2.2、 提供的过期的方式2.3、 ...
2019-04-26 19:42:00
151
转载 依赖注入容器-- Autofac
目录:一、简介二、如何使用 2.1、基本使用 2.2、接口使用 2.3、其他注入 2.4、注入的生命周期一、简介在上一篇文章中讲到替换默认服务容器,我们选择了AutofacAutofac---Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高...
2019-04-25 19:56:00
107
转载 理解ASP.NET Core 依赖注入
目录:一、什么是依赖注入1.1、什么是依赖?1.2、什么是注入?1.3、依赖注入解决的问题二、服务的生命周期(.Net Core DI)三、替换默认服务容器 3.1、为什么替换默认服务容器? 3.2、如何替换服务容器一、什么是依赖注入1、 什么是依赖Rely类 public class Rely { ...
2019-04-24 18:55:00
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人