2008年12月25日
摘要: 概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。 本文通过现实生活中的买KFC的例子,用图... 阅读全文
posted @ 2008-12-25 11:25 lasko 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 模型图 逻辑模型: 物理模型: 生... 阅读全文
posted @ 2008-12-25 11:20 lasko 阅读(325) 评论(2) 推荐(0) 编辑
摘要: 目的 1明白软件架构的概念 2学习软件架构中的关键的设计原则 3学习软件架构中的关键特性 概述 软件体系框架经常被描述为软件系统的结构或是组织,而软件系统就是把各个功能组件整个在一起,完成特定的功能或者一套职能.换句话说,软件架构的重点是把各功能组件组织起来纳入到关注的领域中,如图1.按不同关注领域的应用系统框架。 除了将组件分组,重点考虑的是如何将各个不同部分的组件很好的在一起工... 阅读全文
posted @ 2008-12-25 09:05 lasko 阅读(280) 评论(0) 推荐(0) 编辑
2008年12月24日
摘要: 代理的意思很好理解,它借鉴了我们日常所用的代理的意思:就是本来该自己亲自去做的某件事,由于某种原因不能直接做,而只能请人代替你做,这个被你请来做事的人就是代理。比如过春节要回家,由于你要上班,没时间去买票,就得票务中介代你购买,这就是一种代理模式。这个情景可以形象的描述如下: class:火车站 { 卖票: {……} } 火车站是卖票的地方,我们假设... 阅读全文
posted @ 2008-12-24 15:25 lasko 阅读(149) 评论(0) 推荐(1) 编辑
摘要: ASP.NET MVC框架(第一部分) 2008-12-01 来源:joycode.com ... 阅读全文
posted @ 2008-12-24 15:19 lasko 阅读(141) 评论(0) 推荐(0) 编辑
2008年12月22日
摘要: 本文为一些泛型反射技巧的简单罗列,为日后的文章做准备。 1、如何获得一个封闭构造类型(closed constructed type)的Type对象? 假设有如下的类型: class TestType class TestType 如果要获得封闭构造类型的Type对象,那么只需要用C#的typeof运算符,或者VB的GetType运算符作用于具体类型即可: //C# Type t1 = typeo... 阅读全文
posted @ 2008-12-22 14:01 lasko 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 程序代码在编译后生成可执行的应用,我们首先要了解这种... 阅读全文
posted @ 2008-12-22 13:51 lasko 阅读(10394) 评论(2) 推荐(0) 编辑
2008年12月8日
摘要: 一、概述 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 二、对象的序列化主要有两种用途: 1) 把对象... 阅读全文
posted @ 2008-12-08 16:37 lasko 阅读(123) 评论(0) 推荐(0) 编辑