摘要: 设计模式——外观模式需求.NET程序员大多使用过System.SqlClient、System.OracleClient、System.OleDb,尽管针对的数据库不同,这些类库体系都是实现访问数据库功能。尽管体系结构很相似,使用方法很相似,但是各对应类名称的不同,还是需要各写各的,如果能进行封装,形成一套统一的方法调用就好了。从理论层次来说就是,在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的外观模式(Façade P 阅读全文
posted @ 2012-10-04 01:18 萨迦狐 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 设计模式——单例模式需求在各种应用环境中,应该能发现某些类在这样一点上与众不同:这个类在同一时刻只能有一个对象实例,不允许多个。像一个网站的访问计数器,只能是全局唯一实例,这就需要单例模式(Singleton Pattern)。定义单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。实现原理:(1)将构造函数定义成私有或者受保护,使得不能通过构造函数来创建对象;(2)定义一个静态的方法提供公共接口,用于访问维一的实例。单例模式特征:(1)任何时刻单例类只能有一个实例;(2)单例类自己创建这个唯一的实例;(3)单例类必须给所有其他对象提供这个实例。单例模式又可以分 阅读全文
posted @ 2012-10-03 23:38 萨迦狐 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 设计模式——原型模式需求比如有个对象,在某一时刻该对象中已经包含了一些有效值,此时可能会需要一个和该对象完全相同的新对象,并且此后对对象的任何修改都不会影响到原来对象中的值。也就是说,新对象与原来的对象是两个完全独立的对象,仅仅新对象的初始值是由原来对象确定的。这样的要求,显然可以以原来的对象为原型,复制出一个新对象来(好像没什么问题,其实在OOP中要注意浅表复制与深度克隆的区别),这种思想就是原型模式(Prototype Pattern)。定义意图:用原型对象指定要创建的对象的类型,并且通过拷贝这些原型对象创建新的同类型对象。原理:通过拷贝一个现有的对象来生成新的同类型的对象。原型设计模式包 阅读全文
posted @ 2012-10-03 23:35 萨迦狐 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 设计模式——构建者模式需求在抽象工厂模式中,每个具体的工厂负责创建一个系列相互关联的产品,当一系列相互关联的产品设计到一个工厂类里后,客户端的调用会变得简单;如果要更换这一系列的产品,只只要切换一个具体的工厂类即可。但是,在实体工厂里包含着零件组装逻辑,这违反了工厂类的单一职责原则,使得工厂类既要负责对象的创建,又要负责零件的组装。如果把组装逻辑转移到客户端,则又会使得客户端变得臃肿。如何设计一个单独的类来负责零件的组装,就可以解决则各问题,而且可以组装出不同系列,这就是构建者模式(Builder Pattern)的由来。定义在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部 阅读全文
posted @ 2012-10-03 01:35 萨迦狐 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 设计模式——抽象工厂模式需求在工厂方法模式中,一个具体的工厂负责创建一个单一的产品。如果有多个产品要创建,就需要多个不同的工厂类,即使这些产品有某些必然的联系,如多个产品家族或者多个配套产品系列,也是需要多个看起来分散的工厂类。举个实际的例子,游戏中男孩的帽子、鞋、衣服区别与女孩的帽子、鞋、衣服,各成一个系列,如果使用工厂方法模式来实现,那么那些实体工厂类就在代码上不能体现其配套的内在来年西,看起来太分散了。而抽象工厂模式就是针对多个产品结构而言的,它主要帮助客户一次创建一个家族的多个产品对象。定义抽象工厂模式为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。又称为Kit模 阅读全文
posted @ 2012-10-02 16:20 萨迦狐 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 设计模式——工厂方法模式需求简单工厂模式,简单地实现了对象创建工作和方法使用的分离,实现了模块的责任分配,但是所有对象的创建工作都集中到了那个工厂类里。但是,如果需要创建的对象很多,这个工厂类就会非常庞大,仍然不利于后期的代码维护,怎么办?根据面向对象的思想,应该继续进行职责的分配和封装,也就是说,如果把每一个产品都由一个具体的工厂来创建,把简单工厂模式中那个庞大的工厂拆分成一个个小工厂类,这样每个具体的工厂类只负责某类对象的创建,职责就分配开了,这就是工厂方法模式。定义工厂方法模式(Factory Method pattern)相对于简单工厂模式来说,就是把一个单一的工厂类,分成了多个具体的 阅读全文
posted @ 2012-10-02 04:06 萨迦狐 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 设计模式——简单工厂模式需求在程序设计中,常常需要把对象的创建与使用分离开来,创建型模式都是为了解决此类问题。简单工厂模式是所有工厂模式中最简单的一个,是学习其它模式的基础。许多时候,我们需要一个类来负责根据情况简单地创建类的对象,而客户程序负责使用即可,就可以用到这种模式。定义简单工厂由3部分组成:(1)首先定义一个抽象产品类来描述产品规格;(2)再定义各具体的产品类实现抽象产品类描述的规格;(3)再定义一个静态的工厂方法负责根据传入参数来创建具体的实体产品对象,这个静态工厂方法最后写在一个单独的类里。由于这个工厂方法是静态的,所以简单工厂模式又名静态工厂方法模式(Static Factor 阅读全文
posted @ 2012-10-02 02:19 萨迦狐 阅读(172) 评论(0) 推荐(0) 编辑
摘要: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>table标签与样式的例子</title> <style type="text/css"> 阅读全文
posted @ 2012-10-02 00:44 萨迦狐 阅读(290) 评论(0) 推荐(0) 编辑
摘要: /* ===========================================================模块说明:对于Ajax操作的一些补充功能charset:gb2312调用模块:搜集整理:sagahu@163.com最后修订:2011-12-06*/// 根据实际的浏览器类型,智能创建XMLHttpRequest对象。function createXMLHttpRequest() { var req; if (window.XMLHttpRequest) { // code for Firefox, Opera, IE7, etc. req = new XMLHttpR 阅读全文
posted @ 2012-10-02 00:35 萨迦狐 阅读(315) 评论(0) 推荐(0) 编辑
摘要: /* ===========================================================模块说明:对于xml操作的一些补充功能charset:gb2312调用模块:搜集整理:sagahu@163.com最后修订:2011-12-06*/// 浏览器类型变量var isIe = window.ActiveXObject;var isMoz = document.implementation && document.implementation.createDocument;// 根据实际的浏览器类型,智能创建XMLDOM对象function X 阅读全文
posted @ 2012-10-02 00:33 萨迦狐 阅读(172) 评论(0) 推荐(0) 编辑