摘要: 工厂方法工厂的概念反复出现在面向对象程序设计中,在C#本身和其他设计模式(例如生成器模式)中,就能找到几个例子。在这个例子中,有一个类负责决定在单继承体系结构中实例化哪一个字类。 工厂方法模式(Factory Method Pattern)对这种思想进行了巧妙的扩展,它不是用一个专门的类来决定实例化那一个字类,相反,超类把这种决定延迟到没个子类。这种设计模式实际上没有决策点,即没有直接选择一个字类实例化的决策。按照这种模式编写的程序定义了一个抽象类,他去创建对象,但让子类决定创建哪一种对象。 这里考虑一个相当简单的例子,在游泳比赛中为运动员确定泳道。在一个赛事中,游泳选手完成几次预赛后,按.. 阅读全文
posted @ 2012-03-27 11:45 孙金棚 阅读(1148) 评论(4) 推荐(3) 编辑
摘要: 所有的创建模式都涉及到创建对象示例方式。这一点很重要,因为程序不应该依赖于对象如何创建和如何安排 。当然,使用new运算符是C#创建一个对象实力最简单的方法然而,这实际上相当于硬编码他和程序中如何创建对象管理有关。多数情况下,创建对象的本意随着程序的需求而不同,将创建一个抽象成一个专门的“创造器”类、,会使程序更加灵活、更通用工厂模式(Factory Method Pattern) 提供了一个简单的决策类,他根据提供的数据反回一个抽象基类的多个子类中的一个。抽象工厂模式(Abstract Factory Pattern)提供了一个创建并返回一系列相关对象的接口。单例模式(Singleton P 阅读全文
posted @ 2012-03-26 18:00 孙金棚 阅读(1312) 评论(1) 推荐(2) 编辑
摘要: 概述索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。在下面的示例中,定义了一个泛型类,并为其提供了简单的 get和 set访问器方法(作为分配和检索值的方法)。Program类为存储字符串创建了此类的一个实例。Code 1 class SampleCollection<T> 2 { 3 // Declare an array to store the data elements. 4 private T[] arr = new T[100]; 5 6 // Define the indexer, which will ... 阅读全文
posted @ 2012-03-24 19:02 孙金棚 阅读(340) 评论(0) 推荐(0) 编辑
摘要: .Net中的委托类似于 C 或 C++ 中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与 C 或 C++ 中的函数指针不同,委托是面向对象、类型安全的,并且是安全的。 委托声明定义一种类型,它用一组特定的参数以及返回类型封装方法。对于静态方法,委托对象封装要调用的方法。对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。委托的一个有趣且有用的属性是,它不知道或不关心自己引用的对象的类。任何对象都可以;只是方法的参数类型.. 阅读全文
posted @ 2012-03-24 18:00 孙金棚 阅读(4509) 评论(4) 推荐(3) 编辑
摘要: 1、概念设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。2、一个模式的四个基本要素综述 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我.. 阅读全文
posted @ 2012-03-22 14:01 孙金棚 阅读(786) 评论(5) 推荐(3) 编辑
摘要: 官网:http://www.appelsiini.net/projects/jeditable示例:http://www.appelsiini.net/projects/jeditable/default.html什么是即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该文字就会出现在一个编辑框中,用户对文字进行修改完成后点击提交按钮,新的文本将发送到服务器上,然后表单消失,显示最新编辑的文本。基本的使用方法如下:首先编辑一个 html 文件,包含这么一段:1 2 <div class="edit" id="div_1">Dolor&l 阅读全文
posted @ 2012-03-22 11:43 孙金棚 阅读(858) 评论(1) 推荐(0) 编辑
摘要: 就一个简单的Table,开始我们的钻研<tableid="DetailInfo"><tbody><tr> <th style="width: 30px;"> <input id="chbAll" type="checkbox" onclick="fnSelectAll(this);" /></th><th>标题1</th><th>标题2</th><th>标题3< 阅读全文
posted @ 2012-03-19 16:38 孙金棚 阅读(9801) 评论(0) 推荐(0) 编辑
摘要: 一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表create table tabname(col1 type1 [ 阅读全文
posted @ 2012-03-16 12:58 孙金棚 阅读(1110) 评论(2) 推荐(3) 编辑
摘要: DECLARE @dt datetimeSET @dt=GETDATE()DECLARE @number intSET @number=1--1.指定日期该年的第一天或最后一天--第一天为月日、最后一天为月日都是固定的 --A. 年的第一天 SELECT CONVERT(char(5),@dt,120)+'1-1'AS '年第一天' --B. 年的最后一天 SELECT CONVERT(char(5),@dt,120)+'12-31'AS '年最后一天'--2.指定日期所在季度的第一天或最后一天 --A. 季度的第一天 SELEC 阅读全文
posted @ 2012-03-15 14:19 孙金棚 阅读(1075) 评论(0) 推荐(0) 编辑
摘要: myThis.ArticleStore = Ext.create("Ext.data.Store", { pageSize: 20, autoLoad: { start: 0, limit: 20 }, remoteSort: true, proxy: { ... 阅读全文
posted @ 2012-01-06 09:44 孙金棚 阅读(1885) 评论(1) 推荐(0) 编辑