`
文章列表

.net MD5

    博客分类:
  • .Net
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Text; using ...
function DateDiff(asStartDate,asEndDate) { //获得日期差值 var miStart=Date.parse(asStartDate.replace(/\-/g,'/')); var miEnd=Date.parse(asEndDate.replace(/\-/g,'/')); return (miEnd-miStart)/(1000*24*3600); }  
function window.onunload(){ HotelCreateBill.NolockAllTicket(); }  
1、ISNULL     使用指定的替换值替换   NULL。         语法     ISNULL   (   check_expression   ,   replacement_value   )           参数     check_expression         将被检查是否为   NULL的表达式。check_expression   可以是任何类型的。         replacement_value         在   check_expression   为   NULL时将返回的表达式。replacement_value   必须与   check_ ...
//hzp add 2009-5-15 function chbaoliu(obj) { var now=new Date(); var a=now.getFullYear() +"-" + now.getMonth() +"-" + now.getDate() +" "+obj.value+":00"; var b=now.getFullYear() +"-" + now.getMonth() +"- ...
RadionButtonList _Specialclassid; _Specialclassid = (RadioButtonList)this.FindControl("Specialclassid"); if (_Specialclassid != null) { foreach (ListItem obj in _Specialclassid.Items) { obj.Attributes.Add("onclic ...
前面学习了一部分创建型模式,发现了一个比设计模式更重要的东西:设计模式原则。对于设计模式来说,为什么这个模式要这样解决这个问题,而另一个模式要那样,它们背后都遵循的就是永恒的设计原则。可以说,设计原则 ...
动机:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。应用:旧代码复用、类库迁移等。场景:原有一只SP/2接口的鼠标,现想插在ThinkPad T60上使用,由于T60鼠标接口为USB接口,所以需要一个转换器进行转接。说明:适配器包括两种实现结构:对象适配器和类适配器。类适配器使用多继承,带来不良的高耦合,一般不使用。结构代码实现 namespace DesignPattern.Adapter { /**//// <summary> /// 原有类 /// </summary> ...
1. 简述     通过前面的学习,我们以传统的方式实现了简单工厂,工厂方法和抽象工厂,但是有些场合下如此处理,代码会变得冗余并且难以维护。假设我们要创建交通工具。可以是汽车,火车,轮船等,其结构如下:        我们可以采用简单工厂,通过参数指示创建所需要的对象类型。如果要增加子类,例如卡车和轿车,则必须增加参数和相应的代码。如果子类层次过多,则会是程序变得很难维护。     但我们可以采用工厂方法模式来实现,即定义一个产生交通工具的接口,然后在子类中实现创建具体子类。代码如下:    public interface ICreateVehicle { ...
动机:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。某些结构复杂对象面临着剧烈变化,但拥有比较稳定一致的接口,如何隔离出这些易变对象,使客户程序不随之改变?场景:ThinkPad的主板和CPU有多种,根据系列不同,如何根据已有的硬盘和CPU生产新的主板和CPU。结构代码实现 namespace DesignPattern.Prototype{    public abstract class CPU
1.概述     意图:        提供一个创建一系列相关或相互依赖的对象的接口,而无需指定其具体的类。    使用场合:        在以下场合可以使用抽象工厂:        (1).一个系统要独立于其产品的创建、组合和表示时;        (2).一个系统要有多个产品系列中的一个来配置时        (3).需要提供一个产品类库,而只想显示他们的接口,而影藏其实现时。    抽象工厂结构:         (1).AbstractFactory:声明一个创建抽象产品对象的接口。        (2).CreateFactory:实现创建具体产品对象的操作。         ...
动机:一个复杂对象由多个子对象构成,该对象创建的算法相对不变,构成的子对象剧烈变化。如何应对子对象的剧烈变化,隔离比较稳定的创建算法和易变的子对象,使客户程序不随着子对象的改变而改变。场景:ThinkPad系列产品和一般笔记本一样,拥有比较固定的组成部分:主板、CPU、硬盘、显示器、键盘……。假设所有ThinkPad的组装过程完全相同,不同性能参数的部分组合在一起形成不同型号的ThinkPad,比如T43和T60。如何在组装过程不变的情况下,做出适合型号的所需部件(以CPU和主板为例),就能快速组装成我们所要型号的ThinkPad?结构代码实现 /**//* * 子对象CPU*/
1.概述    在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。    工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化那个类。工厂方法使一个类的实例化延迟到其子类。这个借口所指的是一个抽象方法,该方法说明需要创建一个对象,但并不给出具体的的创建方法和创建什么类型的对象。    工厂方法的使用场合: ...
动机:实现一系列相互依赖对象的创建,通过封装系列对象创建来隔离对象创建和客户程序,从而能够灵活提供更多系列对象创建和系列对象间的切换,而不需要改变客户程序。应用:多种风格软件界面控件的创建、对应多种数据库的多系列数据访问层对象的创建(比如Petshop中的数据访问层对象)。场景:此处以ThinkPad系列产品的组装为例子。组装电脑程序(即客户)需要根据需要拿出不同系列ThinkPad(此处以T43和T60为例)部件(以CPU和主板为例)组装成ThinkPad。因为T43和T60的CPU系列接口不同,所以同一系列中的CPU和主板相互依赖,每次只能拿同一系列的CPU和主板进行组装。Factory M ...
开始学习创建型模式,这些模式的使用是面向接口编程的必然结果,面向接口编程要求针对接口,而不是具体的实现,这样程序可以不用关心具体使用实现也能做到实现的互换。尽管编程是面向接口,但执行是操作需要实例化后的对象,而实例化必须要针对具体的类。如果直接实例化,则破坏了面向接口编程的原则。解决的方法就是通过一个专门实例化的类来获得具体的对象,通常我们将这个类成为“工厂”,将与实例化相关的模式成为“创建型模式”。    1.概述     简单工厂(Simple Factory)的作用是实例化对象,而不需要客户了解这个对象属于那个具体的子类。在GOF的设计模式中并没有简单工厂,而是将其作为工厂方法的一个特例加 ...
Global site tag (gtag.js) - Google Analytics