随笔分类 -  C#

摘要:第Ⅰ部分 开篇 序章第Ⅱ部分 创建型模式篇第1章 单例模式(Single Pattern)第2章 简单工厂模式(SampleFactory)第3章 抽象工厂模式(Abstract Factory) 第4章 建造者模式(Builder Pattern)第5章 原型模式(Protype Pattern)... 阅读全文
posted @ 2014-04-30 16:17 Carl --卡尔 阅读(1898) 评论(2) 推荐(8)
摘要:导读:职责链模式是一个既简单又复杂的设计模式,刚开始学习这个设计模式的时候光示例都看了好几遍。就为了理清里面的逻辑走向。是个值得慢慢品味的设计模式 概述: 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为... 阅读全文
posted @ 2014-04-25 08:39 Carl --卡尔 阅读(1033) 评论(0) 推荐(0)
摘要:导读:策略模式看完之后,大多数人都会感觉有点混了,包括我,感觉策略模式是一种OO思想的体现(纯属个人拙见)。 概述: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具... 阅读全文
posted @ 2014-04-24 15:56 Carl --卡尔 阅读(218) 评论(0) 推荐(0)
摘要:导读:解释器模式,平常用的比较的少,所以在写这个模式之前在博客园搜索了一番,看完之后那叫一个头大。篇幅很长,我鼓足了劲看了半天的描述跟解释,可能是本人的水平有限,或者是耐心太差,看到一半就有点扛不住了。我感觉对于一个菜鸟或者是没接触过设计模式的人来说,在看设计模式的时候更希望作者能简短的用几行代码... 阅读全文
posted @ 2014-04-22 09:23 Carl --卡尔 阅读(3890) 评论(1) 推荐(1)
摘要:备忘录模式 概述:备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。定义(源于GoF《设计模式》):在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该... 阅读全文
posted @ 2014-04-21 10:12 Carl --卡尔 阅读(186) 评论(0) 推荐(0)
摘要:中介者模式 概述: 在软件开发中,我们有时会碰上许多对象互相联系互相交互的情况,对象之间存在复杂的引用关系,当需求更改时,对系统进行修改将会非常困难。为了对系统的对象进行解耦,可以引入一个间接层来管理对象之间的关系,这就是中介者模式。 结构图: 借图理解: 使用中介者 示例:1234... 阅读全文
posted @ 2014-04-20 20:03 Carl --卡尔 阅读(571) 评论(1) 推荐(1)
摘要:观察者模式概述:在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系... 阅读全文
posted @ 2014-04-19 10:47 Carl --卡尔 阅读(934) 评论(2) 推荐(1)
摘要:命令模式(Command Pattern) 概述 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,可... 阅读全文
posted @ 2014-04-18 16:35 Carl --卡尔 阅读(439) 评论(0) 推荐(1)
摘要:代理模式概述:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。结构图:举例: 代练游戏,玩游戏,自己... 阅读全文
posted @ 2014-04-16 12:46 Carl --卡尔 阅读(425) 评论(0) 推荐(0)
摘要:概述: 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得用户对单个对象和组合对象的使用具有一致性。[GOF《设计模式》]结构图:举例: 假设我们公司有做个打卡的程序,能满足各种打卡的需要,比如整个公司能打卡,个人也能打卡(外包人员一个人支起一片天)。我们看看用组合模式是怎么实现的,这里不就讲怎么演化的了!演化的过程比较容易误导。12345678910111213141516171819 阅读全文
posted @ 2014-04-13 11:57 Carl --卡尔 阅读(675) 评论(0) 推荐(2)
摘要:概述: 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点:(1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实对象的引用(reference)(3) 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。(4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。结构图:举例:假设我... 阅读全文
posted @ 2014-04-12 21:46 Carl --卡尔 阅读(425) 评论(0) 推荐(0)
摘要:先看下面这段代码;foreach是可以遍历的。没有问题!1 ArrayList arrList1 = new ArrayList() { 20, 3, 49, 39, 48 };2 foreach (var item in arrList1)3 {4 Console.WriteLine(item);5 }这个也没有问题,可以正常的遍历1 string[] names = { "a", "b", "c", "d" };2 foreach (string item in names... 阅读全文
posted @ 2012-08-20 23:44 Carl --卡尔 阅读(1988) 评论(0) 推荐(0)
摘要:1 2 //MyClass mc = new MyClass(); 3 //mc.M1(); 4 5 ////1>调用静态方法的时候必须通过类名直接来调用,不能通过对象来调用, 6 ////也就是说使用静态成员不需要实例化对象。 7 ////2>静态成员会在整个应用程序退出时,才释放资源,所以可以在整个应用程序中共享数据。 8 //3>静态类不能被实例化,不能被继承。 9 10 //4>由于静态成员会在整个程序... 阅读全文
posted @ 2012-08-18 23:45 Carl --卡尔 阅读(286) 评论(0) 推荐(0)
摘要:先写一个父类: 1 class Person 2 { 3 4 public string Name 5 { 6 get; 7 set; 8 } 9 public int Age10 {11 get;12 set;13 }14 }在写一个继承这个父类的子类 1 class Student : Person 2 { 3 public Student(strin... 阅读全文
posted @ 2012-08-18 23:27 Carl --卡尔 阅读(2379) 评论(0) 推荐(3)