2013年1月9日

面向对象设计原则:依赖倒置原则(DIP)

摘要: 一、什么是依赖倒置原则1、高层模块不应该依赖于底层模块,二者都应该依赖于抽象2、抽象不应该依赖于细节,细节应该依赖于抽象二、关于高层模块与底层模块高层模块是系统不经常发生变化的部分,是一个系统区别于其它系统的重要标志,也是直接面向客户的部分,它包含了系统的策略选择与业务模型。低层模块是系统中经常发生变化的部分,是系统的实现,是用于驱动系统工作的,它不是(直接)面向客户的。三、违反DIP原则的后果DIP原则其实强调的是:不要让不经常发生变化的部分去依赖于经常发生变化的部分。因为一旦经常发生变化的那部分发生了变化,那不经常发生变化的那部分也要随之变化。这是不合理的设计。更坏的情况是,违反DIP的设 阅读全文

posted @ 2013-01-09 14:19 百零八1900 阅读(250) 评论(0) 推荐(0)

2012年12月16日

Lamdba泛型委托

摘要: Func<string, string> f = (a) => a;http://www.cnblogs.com/vebest/archive/2011/08/21/2148656.html 阅读全文

posted @ 2012-12-16 21:54 百零八1900 阅读(98) 评论(0) 推荐(0)

2012年12月15日

LINQ学习记(二)查询

摘要: 1.基本查询class Person{ public string name{get;set;} public int age{get;set;} }//通过表达式初始化 不需要在类名后面加小括号class Test{ //用匿名类型初始化集合 var persons=new List<Person>{ new Person{name="a",age=18}, new Person{name="b",age=19}, new Person{name="c",age=20} }; //标准linq查询 va... 阅读全文

posted @ 2012-12-15 23:31 百零八1900 阅读(167) 评论(0) 推荐(0)

Linq学习记(一)

摘要: 1.扩展CLR类型的方法。如://扩展CLR类型Stringpublic static class StringExt{ public static int CompareExt(this string a,string b) { return a.CompareTo(b); }}//测试class Test{ static void main(string[] args) { int a= "ss".CompareToExt("ee"); } } 2.和委托的搭配使用public static class... 阅读全文

posted @ 2012-12-15 22:27 百零八1900 阅读(118) 评论(0) 推荐(0)

关于抽象工厂模式

摘要: interface NokiaPhone{ // 定义Nokia手机接口 void description();}interface NokiaBattery{ //定义Nokia电池接口 void description();}interface NokiaFactory{ //定义生产Nokia系列产品的接口,包括手机、电池、充电器等。 NokiaPhone createNokiaPhone(); //抽象方法,返回一款Nokia手机 NokiaBattery createNokiaBattery(); //抽象方法,返回一个... 阅读全文

posted @ 2012-12-15 21:58 百零八1900 阅读(149) 评论(0) 推荐(0)

2012年11月9日

android 多线程

摘要: SurfaceView SurfaceHolder-----可以传递画布 重绘。Handler可以与Thread建立联系 在线程里发送消息。通过Handler的sendMessage方法来更新UI--调用postInvalidate 一般handler定义在主线程之中。其他线程发送通知 然后在主线程中进行更新UI等操作。或者直接在线程里使用postInvalidate()方法刷新整个view 阅读全文

posted @ 2012-11-09 17:20 百零八1900 阅读(100) 评论(0) 推荐(0)

2012年10月15日

关于Adapter( 适配器)模式

摘要: Adapter的定义:将一个类的接口转换为客户端所期待的另一接口。Adpater能够让各个类之间相互协作,而不受不兼容接口的影响。Adapter分为对象Adapter和类Adapter两种。对象Adapter: 1 interface USBPort{ //定义USB接口 2 void workWithUSB(); 3 } 4 interface PS2Port{ //定义PS2接口 5 void workWithPS2(); 6 } 7 class PS2Mouse implements PS2Port{ //定义PS2接口鼠标实现PS2Po... 阅读全文

posted @ 2012-10-15 15:03 百零八1900 阅读(223) 评论(0) 推荐(0)

2012年10月14日

关于抽象工厂模式

摘要: interface NokiaPhone{ // 定义Nokia手机接口 void description();}interface NokiaBattery{ //定义Nokia电池接口 void description();}interface NokiaFactory{ //定义生产Nokia系列产品的接口,包括手机、电池、充电器等。 NokiaPhone createNokiaPhone(); //抽象方法,返回一款Nokia手机 NokiaBattery createNokiaBattery(); //抽象方法,返回一个... 阅读全文

posted @ 2012-10-14 19:54 百零八1900 阅读(219) 评论(0) 推荐(0)

关于工厂模式

摘要: /* *工厂模式每个工厂只负责产生一种产品类。 *每次增加一个新的产品只需派生出一个这个产品的工厂即可,只扩展而不修改原来代码。符合OO的封闭修改,开放扩展原则。*/interface Nokia{ //定义Nokia手机接口 void description();}class N97 implements Nokia{ //N97子类实现接口 public void description(){ System.out.println("这是一款N97手机"); }}class N5230 implements Nokia{ //523... 阅读全文

posted @ 2012-10-14 19:44 百零八1900 阅读(163) 评论(0) 推荐(0)

关于简单工厂模式

摘要: 1 /** 2 使用简单工厂,根据客户端输入的具体的参数返回不同的产品对象(同一个接口或抽象类)。 3 优点:客户端不再负责对象的创建,而是把创建的工作交给了工厂类,客户端只负责调用,从而明确了各个类的职责。 4 缺点:每增加一个新的产品,都需要修改逻辑以返回这个产品,违反了OO的封闭修改,开放扩展的原则。 5 */ 6 interface Nokia{ //定义接口 7 void description(); //定义抽象方法 8 } 9 10 class N97 implements Nokia{ //定义子类实现接口11 12 ... 阅读全文

posted @ 2012-10-14 19:36 百零八1900 阅读(118) 评论(0) 推荐(0)

导航