
⭐【设计模式,C#】
文章平均质量分 76
C#,设计模式
UlricaQ
你若盛开,清风自来。
展开
-
三层登陆代码及错误集锦
前言在偷懒和学习之间还是选择敲一遍。这种感觉很踏实。下面是关于三层登陆我的收获。三层登陆显示层(UI),业务逻辑层(BLL),数据访问层(DAL) 三层登陆需要引用,U层引用B层,B层引用D层。里面的User需要贯穿三层,为了较少耦合度,所以将User单独拿出来,用三层去引用这个独立层就好了。代码展示U层//这里要增加一个命名空间using System.Data;...原创 2018-07-02 17:23:48 · 363 阅读 · 16 评论 -
C#设计模式之原型模式
前言书上这个代码不少,改动的地方比较多把,而且还介绍了一个深浅复制,让我们进一步去看看是怎样一步一步学到深复制的?原型模式有是怎样的呢?原型模式英文:Prototypewhat:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 这句话有些复杂,简单来说原型模式就是从一个对象再创建另外一个可制定的对象,而且不需知道任何创建的细节。 这里也给大家提供了I...原创 2018-05-31 20:48:20 · 265 阅读 · 7 评论 -
C#设计模式之模板方法模式
前言感觉模板方法模式和原型有些一样的地方,以后会再次进行分析和总结。这篇博客主要来介绍模板方法模式的使用和代码展示。模板方法模式what模板方法模式通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势,提供了一个很好的代码复用平台,降低了耦合度。情景考试要做的选择题。大家的试卷内容都是一样的,只不过大家给出的答案在abcd中可能不同,这时就可以选择用模板...原创 2018-05-31 21:36:23 · 504 阅读 · 7 评论 -
C#设计模式之外观模式
前言外观模式和装饰模式感觉都像是关于打扮,但是个人认为二者区别是很大的。那么什么是外观模式呢?外观模式的作用又是什么?外观模式英文:Facadewhat为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 体现了依赖倒转原则和迪米特法则的思想。是非常常用的模式之一。 作用:降低耦合度等。应用外观模式再i什么时候使用比...原创 2018-06-01 11:28:47 · 416 阅读 · 2 评论 -
设计模式之桥接模式
前言这里又学习一个新的原则,合成/聚合复用原则。下面一起来看~桥接模式将抽象部分与它的实现部分分离,使它们都可以独立的变化。这也是和合成/聚合分不开的。 也就是实现系统可能有多角度分类,每一种分类都有可能变化,那么就是把这种多角度分离出来让它们独立变化,减少耦合。这也符合了开放-封闭原则。幽默一下: 两个抽象类之间有一条聚合线,像一座桥一样,所以名为桥接模式~场景比如我...原创 2018-06-08 11:18:21 · 363 阅读 · 3 评论 -
C#设计模式之职责链模式
职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 这样就解决了违背单一职责原则了。场景很像公司的管理,如果我是一个公司的应聘者,我想要加薪,如果我的上级能通过这个加薪请求,就可以自行解决,如果面额太大,他不能随便做主,或者不在他的管理范围内,这个时候,就要向再上一级反应,直到这个...原创 2018-06-08 13:21:31 · 531 阅读 · 5 评论 -
C#设计模式之中介者模式
前言中介者模式是一个很好理解的模式,我们身边最形象的例子就是房介。中介者模式英文:Mediator用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。场景现在最火热的话题,租房。 我们现在一般找房源都会通过中介,可以说是一个简捷的桥梁。我们和房主之间可能不会直接谈合同,而是由中介在中间做一些工作,...原创 2018-06-08 13:50:18 · 658 阅读 · 7 评论 -
C#设计模式之享元模式
前言享元不是很好理解,但是它的另外一个解释__共享,就很好理解了。一起来看看吧享元模式英文:Flyweight 运用共享技术有效的支持大量细粒度的对象情景拿书上的例子来说,如果100家企业来找你做网站,难道要去申请100个空间,用100个数据库来粘贴100遍同样的代码吗?肯定不可以,网站增多,实例也随着增多,这对服务器的资源浪费的很严重。 如果大家的网站共享一套代码,只要用...原创 2018-06-08 14:53:37 · 684 阅读 · 6 评论 -
设计模式之解释器模式
前言解释器模式和适配器模式有些异曲同工之妙。适配器是用接口使之兼容,解释器是用语言来解释句子。解释器模式给定义一个语言,定义它的文法(法规)的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 也就是说将一句话,转变成实际的命令程序执行。情景我们都熟悉的编程语言。人们要控制计算机一定要通过计算机语言向计算机发出命令,否则计算机时不会懂得人们的指令的。这里的编...原创 2018-06-08 16:20:53 · 242 阅读 · 6 评论 -
C#设计模式之访问者模式
前言这不是一个特别常用的模式。不做太多介绍,以后学到再补充吧~访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。应用适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。如果系统有比较稳定的数据结构,又有易于变化的算法,使用访问者模式比较合适 目的是要把...原创 2018-06-08 16:52:34 · 456 阅读 · 8 评论 -
C#设计模式之建造者模式
前言建造者模式英文:Builder 又名:生成器模式what将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 它可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 使用建造者模式,用户只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。结构图: 拿这次代码的...原创 2018-06-01 21:00:10 · 581 阅读 · 6 评论 -
观察者模式
前言有种发邮件,一发多的感觉,发出去的是同样的信息,只不过接收到的人不一样了。观察者模式英文:Observer 又名:发布-订阅(Publish/Subscribe)模式what:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。结构图Subject类: 抽象通知者:实...原创 2018-06-02 11:30:49 · 674 阅读 · 4 评论 -
C#面向对象三大特性总结
前言看完视频并没有及时总结,等到快要验项目了,才来又总结一遍。不过学习什么时候都不晚!其实看完设计模式以后对封装,继承,多态有了更深的理解。三大特性分别有封装,继承,多态封装字面意思也很好理解。我们大家都喜欢网购,产品为了不受破坏或者不外泄,都会进行产品封装,如果放到代码里,这就叫封装了。 比如我们大家都玩微信,微信上面只有一些按钮来满足我们的需求,我们点击发送,消息就可以传...原创 2018-06-10 17:26:05 · 2296 阅读 · 7 评论 -
C#数组与集合的区别
前言浅谈一下,菜鸟学习第一步~数组what:数组,是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 用于区分数组的各个元素的数字编号称为下标。 数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合...原创 2018-06-10 19:13:44 · 1593 阅读 · 5 评论 -
C#设计模式之单例模式
前言单例模式英文:SingLeton what: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象,一个最好的办法就是,让类自身负责保存它的唯一实例,这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。好处:保证唯一的实例严格控制客户怎样访问它以及何时访问它。对唯一...原创 2018-08-12 09:00:10 · 311 阅读 · 16 评论 -
C#设计模式之工厂方法模式
前言这个相对来说有写复杂,不过多研究一会就懂了。只是千万要有耐心哦。工厂方法模式what定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。情景将每个类都建立一个工厂,这样就保证扩展时不会动已经存在的类,而只需要增加工厂就可以了。遵循了开放-封闭原则与简单工厂的区别简单工厂模式 最大优点在于工厂类中包含了必要的逻辑判断,根据...原创 2018-05-29 21:27:33 · 1641 阅读 · 15 评论 -
设计模式之代理模式
前言这个模式也是蛮好懂的~尤其是看到《武林外传》中小六表白把秀才的醋坛子打翻这截,太形象了~代理模式what为其他对象提供一种代理以控制对这个对象的访问。其实就是在访问对象时引入一定程度的间接性。 说白了,代理就是真实对象的代表。type代理一般分为以下几种:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。客户端...原创 2018-05-29 20:36:15 · 245 阅读 · 13 评论 -
C#设计模式之迭代器模式
前言迭代器模式场景应用代码展示后记原创 2018-06-05 15:05:43 · 276 阅读 · 3 评论 -
方法~参数
前言:实际应用中,方法的定义和调用要复杂的多,涉及到输入参数,构造函数,静态方法,方法重载等方面。今天主要来学习一下方法的参数。方法的参数方法的参数是调用方法时传递给它的变量,主要分为两类: 1. 传递数据的值:直接把变量的数据值传递给方法。 2. 传递数据的地址:把变量的内存地址传递给方法。ref:使用ref关键字进行引用传递: 位置: ref关键字放...原创 2018-05-02 17:48:29 · 234 阅读 · 8 评论 -
C#之飞行棋大战
前言这次并没有感到很难,也许是因为视频中老师带着一步一步走,所以在探索的过程中就把困难给忽略了。并且在过程中,遇到错误了,自己会想着先调试调试,看看能不能自己解决出来。再对照代码。每一次成长都会带来喜悦。游戏在老师的解析中,这个游戏是有两大难点的。 1. 画图 2. 行走逻辑 也就是画图布局与游戏双方大战的过程。 首先看一下游戏头的设置。游戏头列入代码:* static void Main原创 2018-05-05 21:37:08 · 449 阅读 · 6 评论 -
C#与.Net
前言说起C#与.net,在我身上还真发生过一些哭笑不得的事情。有一次去找同学谈起c#和.net,我就问她了:“你能跟我讲讲C升和点net吗?”她貌似一下被我问懵了:”C升??点net??这是什么?“哈哈,因为在我们音乐专业,”#“这个符号代表了升半个音,学名叫”升”,所以我就拿到计算机上来“用”了。还有.net,一直以为前面一个点,不就读作点net吗?还真是惹的别人不知说什么好。 这不,看了视频才原创 2018-04-29 14:29:15 · 576 阅读 · 15 评论 -
C#之变量
前言首先看了视频之后并没有去总结变量原来还有三种类型。看来没有全局观的学习真的不容易编制成知识网。都是零散的小点,所以在这里还是很建议大家多去看纸质书的。变量变量介绍1. 声明方式:数据类型 + 变量名称 赋值2. 同时声明多个类型相同的变量,要用逗号隔开3. 定义时赋值。如:int number = 50;4. 变量类型及对比:5. 命名规则与规范6. 变量可以重新赋值,一旦有了新值,原创 2018-05-08 08:48:36 · 352 阅读 · 3 评论 -
设计模式之简单工厂模式
前言之前看过设计模式的场景故事,但是代码是一点都看不懂,代码要去实践,看着视频以为了解,但是敲起来可能漏洞百出,有句古话是这么说的:纸上得来终觉浅,绝知此事要躬行。所以,多动动小手吧~简单工厂模式what:又叫做静态工厂方法(Static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式家族中最简单实用的模式。 简单来说,它...原创 2018-05-26 21:26:46 · 356 阅读 · 16 评论 -
C#设计模式之抽象工厂模式
前言抽象工厂模式英文:Abstract Factorywhat提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。结构图 IFactory: 是一个抽象工厂接口,它里面应该包含所有的产品创建的抽象方法。concretefactory1: 是具体的工厂,,为创建不同的产品对象,客户端应使用不同的具体工厂。情景应用代码展示优缺点...原创 2018-06-03 14:45:40 · 289 阅读 · 4 评论 -
C#设计模式之状态模式
前言很好理解。这个名字让人听起来都很安静。看看在设计模式里,状态模式是怎样的吧状态模式英文:Statewhat当一个对象的内在状态改变时允许改变其行为,这个对象看起来像时改变了其类。 主要解决的是当一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简单化。 如果这个状态很简单,就没必要用“状态模式”了。情...原创 2018-06-03 19:53:55 · 605 阅读 · 3 评论 -
C#设计模式之适配器模式
前言这就好比是一个转接线一样。能用原配尽量原配,实在不匹配再考虑用转接线。适配器模式英文:Adapterwhat将一个类的接口转换成客户希望的另外一个接口。使原本由于接口不兼容而不能一起工作的那些类可以一起工作。、现在有两种适配器类型:类适配器模式和对象适配器模式。 C#中不支持多重继承,一个类只有一个父类,所以这里主要讲对象适配器。情景姚明在国外打球,他和其他队...原创 2018-06-03 21:25:21 · 455 阅读 · 4 评论 -
设计模式之备忘录模式
前言这个模式让人感觉很人性化,很明显是体现了面向对象思想。备忘录模式英文:Mementowhat在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。结构图:Originator:可根据需要决定Memento存储originator的哪些内部状态。备忘录有两个接口,caretaker只能看到...原创 2018-06-05 09:43:08 · 376 阅读 · 3 评论 -
设计模式之策略模式
前言:这次写博客改变了以往写博客的方式,以前都是敲完代码再来总结书中的内容,但是这次首先将策略模式的一些基本知识总结了,然后去敲代码,这样的顺序有一个好处,敲代码的时候能很清楚的知道自己往哪走,知道这些代码的功能是什么。看来博客专家都是在一次一次推翻自己,又一次一次有新的历程中成长的!策略模式what:策略模式(strategy):是指对一系列的算法定义,并将每一个算法封装起来,而...原创 2018-05-29 09:00:56 · 435 阅读 · 13 评论 -
设计模式七大原则
设计模式七大原则原创 2018-05-29 11:24:33 · 2958 阅读 · 82 评论 -
C#设计模式之命令模式
前言由于上一篇博客备忘录模式提到了命令模式,所以跳过接下来的4章,直接进入到命令模式的学习~备忘录模式英文:Command 这个名字是不是很熟悉?what将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作。场景宿舍有人过生日,所以预定了一个饭店。我们需要点餐,服务员(接口)进行记录,当点到熊掌鲍鱼时,服务员...原创 2018-06-05 11:14:51 · 973 阅读 · 2 评论 -
设计模式之装饰模式
前言装饰模式之前我们学完了简单工厂模式,又学完了策略模式,今天来和大家一起来看看装饰模式是怎样的?whatDecorator)–动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 作用:为已有功能动态地添加更多功能的一种方式 优点:把类中的装饰功能从类中搬移去除,这样可以简化原有的类。有效的把类的核心职责和装饰功能区分开了。而且可以去除相关类中重复...原创 2018-05-29 17:05:23 · 339 阅读 · 10 评论 -
C#设计模式之组合模式
前言拿大米时代来考虑这个问题是最合适不过的。将大米时代看作总公司,其他分校看成分公司,各个分公司都有自己的很多部门。。。组合模式英文:Compositewhat将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。结构图场景拿咱们处在的大米时代举例子。大米时代有计算机和英语,计算机又分为学术部门,纪律部门,...原创 2018-06-05 12:42:54 · 524 阅读 · 3 评论 -
三符~(转义符+运算符+占位符)
前言上篇博客大概介绍了C#和.net。今天这篇博客主要了解一下一些基本的知识。这里以三符为主,分别是:转义符,运算符,占位符。三符介绍转义符:what: 字面意思为通过一个符号来将原本的一个符号改变了含义。 作用: 1:将普通字符转为特殊用途。一般是编程语言中,用于表示不能直接显示的字符,比如后退键,回车键,等。 2:用来将特殊意义的字符转换回它原来的意义。 举个栗子: 比如说“原创 2018-04-30 20:13:05 · 2767 阅读 · 7 评论