摘要: 意图:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象可适用性:当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者 为了避免创建一个与产品类层次平行的工厂类层次时;或者 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。UML图解:示例代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Prototype 7 { 8 ... 阅读全文
posted @ 2012-02-24 10:14 JumpByte 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 动机:在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定;如何应对这种变化?如何提供一种“封装机制”来隔离复杂对象的各个部分的变化,从而保持系统中的“稳定构建算法不随需求的改变而改变意图:将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。——《设计模式》GOF可适用性:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。UML图解:示例代码:游戏场景中Builder模式 阅读全文
posted @ 2012-02-24 10:08 JumpByte 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 动机:在软件系统中,经常面临着“系列相互依赖的对象”的创建工作:同时,由于需求的变化,往往存在更多系列对象的创建工作;如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?意图:提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。适用性:一个系统要独立于它的产品的创建、组合和表示时。 一个系统要由多个产品系列中的一个来配置时。 当你要强调一系列相关的产品对象的设计以便进行联合使用时。 当你提供一个产品类库,而只想显示它们的接口而不是实现时。UML图:示例代码:游戏场景中Abstrac 阅读全文
posted @ 2012-02-24 09:54 JumpByte 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 动机:当一个类不知道它所必须创建的对象的类的时候。当一个类希望由它的子类来指定它所创建的对象的时候。当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。意图:定义一个用于创建对象的接口,让子类决定实例化哪个子类。FactoryMethod使得一个类的实例化延迟到子类UML图:示例代码:演示说明 ,一个汽车测试软件系统 FactoryMethod的应用 1 public enum Direction 2 { 3 Right,Left 4 } 5 6 public abstract class Abst... 阅读全文
posted @ 2012-02-24 09:44 JumpByte 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 动机:在软件系统中,经常有这样的一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率意图:保证一个类仅有一个实例,并提供一个该实例的全局访问点UML图:示例代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Singleton 7 { 8 /// 9 /// 只适用单线程下的单例模式,在多线程下无法保证其唯一实例10 /// 11 //public c... 阅读全文
posted @ 2012-02-24 09:32 JumpByte 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 下面先来叙述一下问题的描述:要求设计一个能描述所有图形公共属性和方法的的类(Shape),然后设计若干个不同的继承Shape的子类,比如三角形、圆形,矩形等等,基本功能要求:能提供面积和周长的计算和输出接着我们就来用C#语言的封装和继承的特性分析一下这个类和子类的设计吧,首先就是父类的设计,想一想父类应该包含哪些属性,或者方法呢,对于每个图形我们知道他们都有自己的周长和面积,因此我们可以将其周长和面积放到父类Shape中即可,对于所有具体的某种图形都应该有计算和输出其周长和面积的方法,那计算和输出的方法应该放到子类中呢还是父类中去呢,我们可以从其变化的角度来分析,对于不同图形来说,它们周长和. 阅读全文
posted @ 2012-01-06 18:50 JumpByte 阅读(914) 评论(1) 推荐(0) 编辑
摘要: 母版页(扩展名是.master)它的使用跟普通的页面一样,可以可视化的设计,也可以编写后置代码。与普通页面不一样的是,它可以包含ContentPlaceHolder控件,ContentPlaceHolder控件就是可以显示内容页面的区域。代码如下:...... ......注意: 1、这里的声明指示符是“” 2、其内部包含控件内容页(扩展名是.aspx)在建立内容页面的时候,在“添加新项”对话框中要选中“选择母版页”复选框。这样建立的页面就是内容页面,内容页面在显示的时候会把母版面的内容一起以水印淡化的形式显示出来,而在母版页中的ContentPlaceHolder控件区域会被内容页... 阅读全文
posted @ 2012-01-02 11:10 JumpByte 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1. background-position:left top; 背景图片的左上角和容器(container)的左上角对齐,超出的部分隐藏。 等同于 background-position:0,0; 也等同于background-position:0%,0%; 2. background-position:right bottom; 背景图片的右下角和容器(container)的右下角对齐,超出的部分隐藏。 等同于background-positon:100%,100%; 也等同于background-positon:容器(container)的宽度-背景图... 阅读全文
posted @ 2012-01-02 11:03 JumpByte 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 下面是我要用到的一个背景图:代码如下: 复制代码代码如下: x:0,y:0 x:-50px,y:-50px x:100px,y:100px HTML页中是162*162的灰色背景DIV块并加入三种不同位置的背景图片, 在浏览器中看到的效果: 从上图可以看到:当为background-position:0 0;时图片的左上角与DIV的左上角是重合的,当我们定位于background-position:-50px -50px;时发现图片向左、上移动了,也就以DIV的左上角为中心,图向左移动了50PX,向上也移动了50PX.第三个示例采用的都是正值,可以解解释为图向右、... 阅读全文
posted @ 2011-12-30 16:00 JumpByte 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。jQuery是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 JavaScript™ 以及Ajax 编程。有人使用这样的一比喻来比较prototype和jQuery: 阅读全文
posted @ 2011-12-30 15:01 JumpByte 阅读(162) 评论(0) 推荐(0) 编辑