09 2013 档案
摘要:名词解释:享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。必要元素:1.一个享元工厂,用来创建并管理Flyweight对象。它主要是用来确保合理地共享Flyweight,当用户请求一个Flyweight时,FlyweightFactory对象提供一个已创建的实例或者创建一个(如果不存在);2.所有具体享元类的父类或接口,通过这个接口,Flyweight可以接受并作用于外部状态;3.继承Flyweight父类或者实现Flyweight接口,并为内部状态增加存储空间;4.指那些不需要共享的Flyweight子类,因为Flyweight接口共享成为可能,但是并不强制共享(即那
阅读全文
摘要:名词解释:中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而可以独立地改变它们之间的交互。必要元素:抽象对象类:就是用于交互的对象的抽象类;具体类:继承自抽象对象类(也就是用于交互的一个个对象的类);抽象中介者:定义了具体对象到中介者对象的接口;具体中介者对象:实现抽象类的方法,它需要知道所有具体对象类,并从具体类接收消息,向具体对象发出命令。例子:抽象中介者类: abstract class Mediator { public abstract void Send(string message,Colleague colleagu...
阅读全文
摘要:如何在WP8中进行数据存储,你首先想到应该是独立存储,但是独立存储似乎存储文件更方便,如果我们希望像处理对象的形式,该怎么办呢,答案就是Sql Server CE。Sql Server CE并不是新鲜东西,它是专门用在移动端的一个工具,它和SQLServer有很大的不同,SQLServer中我们使用Sql语句,而Sql Server CE则要使用Linq处理。一、创建表 /// /// 员工表 /// [Table] class EmployeeTable : INotifyPropertyChanged, INotifyPropertyChanging { ...
阅读全文
摘要:一、Pivot控件(枢轴控件)Pivot主要用于管理应用中的视图或者页面,此控件在WP中几乎处处可见,不管是短信的左右滑动,还是QQ的左右滑动都是此控件的功劳。就是图片中的控件,是不是很熟悉呢。Pivot一共分为两个部分,分别是Pivot的Header部分和PivotItem的Content部分。(1)Pivot的Header主要就是Pivot的Title的属性,也就是上图中看到的"My Application"和"系统"分别为Pivot的Title和PivotItem的Header。其中Pivot的Title可以通过TitleTemplate模板来设置
阅读全文
摘要:名词解释:职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,直到有一个对象处理它为止。必要元素:1.定义一个处理请示的接口;2.具体处理类,处理它所负责的请求,可访问它的后继者,如果可以处理该请求,就处理,否则就将该请求转发给它的后继者。上例子:Handler:class Handler { protected Handler successor; public void SetSuccessor(Handler successor) { this.successor ...
阅读全文
摘要:名词解释:命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作.必要元素:1.用于执行操作的接口(抽象类);2.一个或者多个实现(继承)自操作接口的类;3.用于执行命令的类;4.接收者,用于实施与请求相关的操作。上例子:命令接口: abstract class Command { protected Receiver receiver; public Command(Receiver receiver) { this.receiver = receiver...
阅读全文
摘要:名词解释:合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。合成和聚合都是关联的特殊种类。聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样(即同时销毁和存在)。合成/聚合复用原则的好处是,优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。抽象与它的实现分离,实现指的是抽象类和它的派生类来实现自己的对象。必
阅读全文
摘要:名词解释:组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。必需元素:1.组合中的对象的接口(Component),在适当情况下,实现所有类共有接口的默认行为。在类中定义一些用于访问和管理Component子部件;2.在组合中表示叶节点对象的类(叶节点木有子节点);3.定义有枝节点行为,可以存储子部件的类。(会实现Component中关于子部件操作的方法,一般为Add和Remove)上例子:Component,节点抽象类:/// /// 部件的抽象类 /// abstract class Component...
阅读全文
摘要:名词解释:备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。使用场景:你在玩游戏,突然有事,此时如果关闭电脑,进度肯定木有了,然后你就点击保存,关闭电脑出去了;完事之后,你又点击加载进度,又开始玩了,这个就是一个标准的备忘录模式场景。必需元素:发起人:负责创建一个备忘录,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态 。发起人可根据需要决定备忘录存储发起人的哪些内部状态。备忘录:负责存储发起人对象的内部状态,并可防止发起人以外的其他对象访问备忘录。备忘录有两个接口,管理者只能看到备忘录的窄接口,它只能将备忘录
阅读全文
摘要:名词解释:适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。使用场景:系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。(用最简单的一句话说就是,有两个比较相似的类,但是具有不同的接口时要使用它,也就是在双方都不太容易修改的时候再使用适配器模式适配。)必要元素:1.客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口;2.要适配的类;3.一个用于包装需要适配类的类。上
阅读全文
摘要:名词解释:简单工厂:这个实在是没什么解释的,就是一个工厂类,然后有一个方法,根据传递的参数可以通过switch(你也可以是if,或者是使用高端的反射 )来进行对象的创建。工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。区别:简单工厂的优点是工厂类中包含了逻辑(即通过判断,实例化对应的类型),对于客户端来说去除了与具体产品的依赖。但是如果有了新功能则就需要修改这个判断的逻辑(也就是违背了开放-封闭原则),所以这个也是工厂方法出现的必要性。工厂方法呢每一个类都有自己的工厂,当然也有抽象的工厂基类,这样客户端想实例哪种类型,只需实例化其对应的工厂
阅读全文
摘要:名词解释:外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用。必要元素:一个外观类和多个子系统类(外观类中注入各个子系统类)。上例子:四个系统类:class SubSystemOne { public void MethodOne() { Console.WriteLine("子系统方法一"); } } class SubSystemTwo { public void MethodTwo() { Co...
阅读全文