设计模式
PresleyGo
只心向前,无问西东
展开
-
设计模式样例与总结
代码写多了,看多了就会发现,体现程序员的代码质量有两个方面,一个是排版格式,英文命名,注释,无用代码清理等较简单的内容,另一个是对模块的实现思路,面向对象的思考,处理方式等这些倾向于思考的内容。 对于第二个方面,多看一些大牛的代码,思考他的设计思路,深入理解设计模式,合理运用设计模式,是写出高质量代码的途径。设计模式一直都在,不过不使用倒是很容易忘记,鉴于此,把之前写过的一些设计...原创 2019-07-31 17:52:40 · 270 阅读 · 0 评论 -
设计模式之——责任链模式
跳转到==>设计模式汇总责任链模式(属于行为型模式)1 很好理解,就是一个东西传下来,遇到合适的处理对象,才进行处理2 重点:有多个处理者,这些处理者继承同一类;每个处理者有它的下一级处理者;当然每个的下一级是串联在一起的 public class Mobile { public Mobile nextMobile; public ...原创 2019-08-01 09:07:45 · 156 阅读 · 0 评论 -
设计模式之——命令模式
跳转到==>设计模式汇总命令模式1 嗯,,耗了很多时间在这里,其实也没多复杂,就是不太清楚目的。总的来说是这样的:有一个命令基类,然后其他的命令继承,继承的命令里面会存一个主体,然后命令的基类方法的实现是依靠存入的主体去实现。2 我们常规的处理命令的思路是,一个命令基类,然后继承命令去分别添加不同命令。命令模式的思路是,继承的命令不直接重写命令方法,而是由存入的类去重写命令方法。隔了...原创 2019-08-01 09:09:26 · 135 阅读 · 0 评论 -
设计模式之——解释器模式
跳转到==>设计模式汇总解释器模式1 它的意思是解释,不过没看出来和解释有什么太大的关联。结构的特点是,一些继承类的继承方法,通过传入的其他继承类来实现。一个解释基类,一些继承类(供其他使用),一些继承类(使用其他继承类)2 自己的案例没有写完,, public interface Expression { bool Interpret(strin...原创 2019-08-01 09:11:39 · 139 阅读 · 0 评论 -
设计模式之——迭代器模式
跳转到==>设计模式汇总迭代器模式1 这个模式确实很常见,需要熟悉,C#里面经常会看到相关的结构。一个迭代结构 Iterator,Iterator里面有moveNext()的方法。一个包含迭代结构的类,该类自己存储要遍历迭代的数据,在自己内部实现Iterator的继承结构,并且有一个返回该继承Iterator类实例的方法 GetIterator()。 public inte...原创 2019-08-01 09:13:11 · 122 阅读 · 0 评论 -
设计模式之——中介者模式
跳转到==>设计模式汇总中介者模式1 目的是把对象之间网状的关系,转化为星状的关系。嗯,我还是觉得奇怪,这种提出来的意义是什么,一般好像就是这么处理。网上的聊天室例子并不合适,因为它是直接A发消息给大厅,而不是A发消息给B,本来就跟对象之间没有关系,所以本质就是星状的关系,没有任何变化。2 我觉得这个模式的使用条件是,对象之间可以不是直接联系。比如A1要租房,B1,B2,B3是房东,...原创 2019-08-01 09:15:00 · 145 阅读 · 0 评论 -
设计模式之——备忘录模式
跳转到==>设计模式汇总备忘录模式1 怎么看完觉得没什么东西可说的,可能讲的不是新奇的结构,思路,只是有这么一种需求,把它给说出来。2 备忘录的目的是可以备份数据,需要的时候可以找回之前的版本的内容。所以它需要一个数据类,一个存储数据的结构,一个获得和保存的方法 public class StateInfo { public int coin; ...原创 2019-08-01 09:15:50 · 177 阅读 · 0 评论 -
设计模式之——代理模式
跳转到==>设计模式汇总代理模式1 顾名思义,就是有代理,中介存在。例如:喝醉了,不能开车(不想和不能改动目标是重点,如果让车自己动,就改动了目标),找人代理开车的工作,代理人会开车,并且他有车(有车是重点)2 二个重点:代理者和对象继承同个接口(这个地方非常怪异);代理者拥有对象;3 目的是不想或不能直接访问或修改对象4 与装饰器有点像,似乎都是为了不改动对象而采取的方案...原创 2019-08-01 09:04:13 · 120 阅读 · 0 评论 -
设计模式之——享元模式
跳转到==>设计模式汇总享元模式1 这个名字有点奇怪,解释一下:一个对象池,使用者可以从对象池里面取出对象(元),取的过程中,如果对象池里面没有要的东西,则new一个添加进对象池(享)。2 这里有两个重点,一个是对象的抽象部分由对象池提供,对象的具体部分由使用者另外定义。另一个是如果当前对象池没有要的对象,则添加进去。 public abstract class Hero...原创 2019-08-01 09:02:16 · 126 阅读 · 0 评论 -
设计模式之——外观模式
跳转到==>设计模式汇总外观模式1 外观模式也比较简单,基本的目标是:让调用者使用简单。直接给出调用者一些方法,调用者直接调用方法就可以了。类似于很多的Util类,Tools类。 public class Cpu { public void Start() { Console.WriteLine("CPU St...原创 2019-08-01 08:59:39 · 132 阅读 · 0 评论 -
设计模式之——简单工厂模式
跳转到==>设计模式汇总简单工厂模式1 使用情景:多种对象,这些对象都有相同的特性,所以他们来自同个类或接口,他们有相同名字的方法。这些对象根据自己的特性,重写这个方法,体现出个体在种族内的差异性。 工厂根据你指定的参数,生成对应的对象,然后就可以调用该对象的相同方法。2 多个同种类型的产品,一个工厂。根据产品的名字,通过工厂得到产品。 public class ...原创 2019-07-31 17:56:01 · 1280 阅读 · 2 评论 -
设计模式之——抽象工厂模式
跳转到==>设计模式汇总抽象工厂模式1 抽象工厂模式和工厂模式有相同的地方,有多出来的地方。相同的是他们的主要目的是获得产品,以及使用该产品的方法。不同的是,抽象工厂模式在抽象出产品的基础上,再抽象出工厂。这使得调用者可以很方便的得到他要的产品和产品的特性。但是缺点也很大,管理工厂需要耗费很多精力,整个结构显得比较庞大,臃肿。需要熟练这种模式才能比较好的运用和理解。2 抽象工厂是多个...原创 2019-07-31 18:03:09 · 207 阅读 · 0 评论 -
设计模式之——单例模式
跳转到==>设计模式汇总单例模式1 单例模式有几种说法,懒汉模式,饿汉模式;线程安全和线程不安全。 1.1 懒汉模式:是指等到调用单例方法GetInstance()的时候才去检查是否已生成对象,如果_instance为null则new一个对象,如果不为null,则直接返回_instance。这种方式的优点是你可能不会用到该实例,而只用到它的静态方法,那么这个时候内存就还没有ne...原创 2019-07-31 18:07:59 · 182 阅读 · 0 评论 -
设计模式之——建造者模式
跳转到==>设计模式汇总建造者模式1 这个模式部分用到工厂模式,不同之处在于,它不止单单满足于生成某种单一的产品,它还要将多个产品组合在一起,成为一个组合。2 好处是,将一个复杂的组合结构分解出来,每个分解出来的部分单独进行处理,那么这一部分就变得很简单。然后再写一些搭配方法得到你想要的组合。搭配方法有很多种。3 所以这种模式的主要用法是:给多个人去写产品,产品有一定的约束,然后再...原创 2019-07-31 18:13:59 · 226 阅读 · 0 评论 -
设计模式之——原型模式
跳转到==>设计模式汇总原型模式1 有一些对象比较难获取,如果每次都从源位置进行获取(比如配置表,数据库),则会耗费大量的性能。此时就需要把这些对象先保存起来,然后再复制出对象。2 总的来说2个关注点:(1)保存对象的缓存结构,比如hashtable。(2)复制对象的方法3 奇怪了,感觉这个模式的内容太简单,简单到几乎只需要用到2个方法就完成这个模式,, public ...原创 2019-07-31 18:15:39 · 215 阅读 · 0 评论 -
设计模式之——适配器模式
跳转到==>设计模式汇总适配器模式1 为什么看完总觉得怪怪的。适配器使用的情况是,之前写的一套流程,只有一种数据结构,和一种处理方法。后来有了另外的数据结构,另外的数据结构有自己的处理方法,这个时候想要在同一个调用类里面调用同一个方法,该方法使用另外的数据结构,仍能正常运行。我认为好像就是多了一些if判断罢了啊,,,如果是数据结构1,则执行方法1,如果是数据结构2,则执行方法2,2 ...原创 2019-07-31 18:18:13 · 191 阅读 · 0 评论 -
设计模式之——桥接模式
跳转到==>设计模式汇总桥接模式1 怎么这个看了也觉得怪怪的。看来没有实际去使用过,去设计过框架,会觉得奇怪。2 有一个点很重要。一般的方式是,多种类型物品,提取出一个抽象,然后继承。然而桥接模式就不是这样做,它是写一个接口A作为桥接,然后写另外一个抽象类B去调用这个接口A,然后具体类C继承于B再由C调用A接口。这个时候,如果你对C调用A的方法进行改动,那么就相当于对A进行改动,这种...原创 2019-07-31 18:22:40 · 211 阅读 · 0 评论 -
设计模式之——过滤器模式
跳转到==>设计模式汇总过滤器模式1 从数据里面找出想要的某些数据,逻辑相对简单,也很常见,没什么好说的。2 这里面唯一的一点东西是,得出的数据进行并/或运算.也没啥,, public abstract class Vehicle { public abstract Scope UseScope(); public enum Sc...原创 2019-07-31 18:25:40 · 221 阅读 · 0 评论 -
设计模式之——组合模式
跳转到==>设计模式汇总组合模式1组合模式是一个树状结构,根节点有子节点,子节点又可以作为根节点,有它自己的子节点.2 应用场景的话,比如一个公司.员工作为结点,那么 总经理包含多名副经理和助手,副经理包含多名部长,部长包含多名科长\副科长等3 重点是,要组合的模型类里面,它含有一个类型为自己的list变量.一层套一层的感觉 public class YanghuiNu...原创 2019-07-31 18:27:21 · 214 阅读 · 0 评论 -
设计模式之——装饰器模式
跳转到==>设计模式汇总装饰器模式1 怎么回事,装饰器模式的内容,怎么跟桥接模式一模一样~2 重新回去梳理,设计模式针对的是目的,装饰器的目的是为了修饰对象,桥接是为了解耦 public abstract class Fruit { public abstract int GetPrice(); } public class ...原创 2019-08-01 08:58:23 · 126 阅读 · 0 评论