4 mango_love

尚未进行身份认证

习而简之,简而精之

等级
TA的排名 3w+

表达式目录树(Expression)

表达式目录树什么是表达式目录树呢?用于表示Lambda表达式逻辑的一种数据结构,表达式树也可以称作表达式目录树,它将代码表示成一个对象树,而不是可执行的代码。这个跟汇编原理一样,我们找到关键字,把这些语句翻译成机器码,我们这里的关键字就是表达式树里面的节点,然后分析语法词法,最后变成机器可识别的指令。表达式目录树有什么作用呢?我们在使用ef框架的时候经常使用linq,使用linqto...

2019-07-28 16:33:05

迭代器模式(Iterator Pattern)

C#内置迭代器解析迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,且不用暴露该对象的内部表示。迭代器模式又称为游标模式。迭代器模式的结构Iterator(抽象迭代器):定义访问遍历元素的接口,声明便利元素的方法publicinterfaceIterator{voidFirst();voidNext();voidHasN...

2019-07-27 23:16:20

解释器模式(Interpreter Pattern)

解释器模式:给定一个语言,定义它的文法的一种表示,并且定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式结构AbstractExpression(抽象表达式):在抽象表达式中声明了抽象的解释操作,它是所有终结符和非终结符表达式的公共父类。abstractclassAbstractExpression{publicabstractstringI...

2019-07-27 22:16:23

命令模式(Command Pattern)

命令模式(CommandPattern):将一个请求封装为一个对象,从而让你可以用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销操作。命令模式的结构Command(抽象命令类):提供具体类执行方法和撤销方法的一个模板。abstractclassCommand{publicabstractvoidExecute();}Concr...

2019-07-20 21:52:25

代理模式(Proxy Pattern)

在电子商城新起的时代里,某宝某东的大型电商平台假货也是非常多而且价格还不菲或是在这些电商平台购不到的一些商品,从而衍生出一种专门从海外进行购物的一群人,我们称之为代购,一般来说,代购是从国内接到一些需求,从而到海外进行选购带回国内的一种中间商。在软件开发过程种有一种设计模式可以提供类似代购的功能,由于一些原因客户端不想直接或者不能直接访问到一个对象,此时添加一个代理类,通过这个代理来间接访问这...

2019-07-20 18:03:08

职责链模式(Chain of Responsibility Pattern)

职责链模式(ChainOfResponsibilityPattern):避免将一个请求的发送者和接收者耦合在一起,让多个对象都有机会处理请求,将接受请求的对象连接成一条链,并且沿着链传递请求,知道有一个对象能狗处理它为止职责链模式的结构Handler(抽象处理者):它定义一个处理请求的接口,由于不同的具体处理者处理请求不同,因此在处理者中定义一个处理请求的方法,每个处理者...

2019-07-20 18:02:11

C#反射破坏单例

单例大家都不陌生,程序从开启到死亡过程中只能存在一个实例,即存在不可创建,今天给大家介绍一种打破这种模式的方法,在程序运行中创建无数个单例实例对象。关于单例模式模糊或者不懂的可以参考C#单例模式上文我们讲到了反射的基本操作,实例化对象、属性、方法、特性等操作,可以参考C#反射咱们切入正题,单例有两种,一种是程序加载时创建,一种是使用时创建,我们这里主要是创建一个加载时创建的单例。我们...

2019-07-20 10:34:55

net core 中间件(MiddleWare)

定义:中间件是被组装成一个应用程序管道来处理请求和响应的软件组件。上图是由微软提供的一个执行图,我们可以看到有多个中间件,每个中间件请求的时候有个next()方法把职责传递给下一个中间件,这里值得注意的是最后一个中间件没有next方法,也就是终止,然后响应。每一个中间件都有它自己的职责,把各个执行分离开执行完成后传递给下一个,直到全部的都执行完成,这有点像职责链模式。那么它内部是怎么实...

2019-07-18 12:15:04

LINQPad工具-linq、sql、IL优化和转换

今天给大家介绍一个非常强大的linq转换和优化工具,它包含linq、sql、il、表达式树的转换,支持现在的主流数据库,甚至包括nosql(需要下载插件,下文介绍)下载地址百度云盘(不能下载私聊或者留言):链接:https://pan.baidu.com/s/1NT-eqmKtM6TnXi3zuaMWdQ提取码:te25安装双击这个exe接下来就是下一步下一步的...

2019-07-17 11:44:06

.Net字符暂存池(String Intern Pool)

字符串在.Net中既有值类型的特点又有引用类型的特点,字符类型也称作为不可变对象类型,字符串类型在使用上可以说占很大的比例,每次使用的时候都要重新开辟一个新的空间,这样会大量消耗内存,所以微软给我们一个名为StringInternPool的字符暂存池,我在重复使用这个字符串的时候不需要重新开辟一个新的空间,只需要从这个池子里面获取即可。我们在新建一个字符的时候,首先去暂存池获取有没有这...

2019-07-16 17:12:43

享元模式(Flyweight Pattern)

我们知道机器语言识别的只有0和1,我把这两个元素存到一个实例里面,每次使用的时候去调用它,而不是使用的时候直接去new一个对应的对象,这样是非常消耗内存的,我们把这个收藏1和0的容器称之为享元库。享元模式(FlyweightPattern):运用共享技术有效地支持大量细粒度对象的复用享元模式的结构Flyweight(抽象享元类):抽象享元类通常是接口或者抽象类声明具体享元类...

2019-06-30 12:27:59

外观模式(Facade Pattern)

mango公司最新研发了一块app刚刚发布就受到了用户的青睐,用户也提出许多反馈,产品经理根据用户反馈最多的问题来提出迭代一个版本:用户反馈咱们的app主题单一,为了广大用户的需求,需要对app的主题进行扩充。开发小组进行讨论,如果我们添加不同的主题,每个页面就得新增不同的主题页面这样太浪费时间并且工作量巨大。改变主题主要是改变页面的样式,我们只需要多做几套样式,根据用户的切换或者配置给予相应...

2019-06-30 09:26:16

装饰模式(Decorator Pattern)

借用一张百度图片,我们在装修完房屋的后会在家里买一些点缀的家具,比如说客厅里面贴一些壁纸、挂上一些照片、摆上沙发茶几、弄几个盆栽...等等,这样一个温馨的家完成了。装饰模式是一种用于代替继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代继承关系,在装饰模式中引入一个装饰类,这个类既可以调用待装饰方法也可以新增新的方法,来扩展原有的类的功能。装饰者模式...

2019-06-29 23:34:49

组合模式(Composite Pattern)

如上图是一个Windows目录结构的截图,我们发现目录里面有文件、文件夹,文件夹下面可以放文件文件夹,但是文件里面不可以放文件和文件夹,这样我们遍历这个目录下所有文件的时候,我们采用递归的方式层层遍历,直到所有文件夹下面的文件都遍历为止。我们这样遍历的时候每次都需要区分是不是文件夹,有些时候客户需要对他们进行一致性的对待,这样我们只有遍历每个节点就行,不需要对其进行区分。组合模式(Comp...

2019-06-29 17:25:44

桥接模式(Bridge Pattern)

我们逛某宝买衣服一般是先看款式,挑到自己喜欢的款式接下来就是看看衣服的颜色和适合自己的尺码,太大太小不合身,颜色不搭配都是很可怕的事情。衣服的颜色和尺码是影响衣服变化的两个维度,客户可根据自己的需求来选择自己心仪适合的衣服,所以今天给大家带来设计模式是桥接模式,桥接模式将两个变化的维度设计为两个独立变化的结构,使用一个第三方的抽象层来关联,这个抽象层就好比是一座桥,两个独立变化的结构就好像是河...

2019-06-29 14:47:24

适配器模式(Adapter Pattern)

小明的水果店远近闻名,招来了很多外国朋友,但是小明有不会英文,没办法跟他们沟通,所以小明请了一个翻译既懂英文又懂中文的小翻译。这个翻译通过把英文转换成中文跟小明对话。一般来说这个翻译我们称之为适配器适配器模式(AdapterPattern):将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作适配器模式的结构Target(目标抽象类):目标抽...

2019-05-30 23:44:59

单例模式(Singleton Pattern)

小明的水果店越来越红火,小明想做一个微信公众号做推广并且发优惠券,当然这个公众号是小明这个店铺的唯一推广公众号单例模式(SingletonPattern):一个类只有一个实例,并且提供一个全局访问点来访问这个唯一的实例单例模式的结构实现单例模式需要达成两个条件:1.该类不可实例化2.提供一个私有的静态工厂方法根据加载时间可以分为两种:在运行时创建,也可以称之为饿...

2019-05-29 23:40:58

设计模式目录

设计模式的定义设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。UML类图基础知识:UML类图介绍和元素信息UML类图对应关系和对应代码面向对象的七种设计原则:1.开闭原则(Open-ClosedPrinciple)2.单一职责原则(...

2019-05-29 14:59:15

原型模式(Prototype Pattern)

小明的水果点即将开业,需要做一些宣传和优惠券,这时我们只需要一张优惠券然后通过打印店复制一大堆,下次还需要搞活动的时候直接拿去复印就好了,不需要每一张每一张手动的去重新制作。我们这里可以使用原型模式,他是一种对象创建型设计模式,将一个原型对象传递给要发动创建的对象(客户端对象),这个创建者通过请求原型对象复制自己来创建的过程。原型模式(ProtetypePattern):使用原型实例指定待创...

2019-05-28 23:16:47

SQL Server数据库分区分表

当一个数据表的数据量达到千万级别以后,每次查询都需要消耗大量的时间,所以当表数据量达到一定量级后我们需要对数据表水平切割。水平分区分表就是把逻辑上的一个表,在物理上按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下。这样把一个大的文件拆分成多个小文件,便于我们对数据的管理。下面我们来创建表分区代码创建分区表添加文件组代码格式:...

2019-05-28 20:38:25

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。