步步为营 .NET 设计模式学习笔记 六、Adapter(适配器模式)
概述 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?这就是本文要说的Adapter 模式。 意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
http://cyqdata.cn/cnblogs/article-detail-36089
步步为营 .NET 设计模式学习笔记 五、Prototype(原型模式)
概述 在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适。那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化? 意图 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一
http://cyqdata.cn/cnblogs/article-detail-36064
分享20个Web开发中模式弹窗应用案例
模式窗口是位于网页最顶层的一个小页面,使用模式窗口可以简化用户界面,让可以访问更多的信息而不用离开当前页面,这是吸引用户注意力到重要内容上面的一种非常有效的方法。不过,需要注意的是,使用模式窗口会使得用户无法和遮罩下面的页面进行交互,可能让部分用户感觉有点烦,因此模式窗口有其特定的使用场景。今天,本文与大家分享20个非常好的模式弹窗应用案例。
zootool.com
patternry.com
http://cyqdata.cn/cnblogs/article-detail-35991
单例模式总结
昨天翻了本设计模式的书,发现单例模式竟然有点弄不明白了,抓紧查资料补上,这里总结下。
1:
class Singleton{ private static Singleton instance; private Singleton() { // } public static Singleton getInstance() { if (instance == null)
http://cyqdata.cn/cnblogs/article-detail-35975
步步为营 .NET 设计模式学习笔记 三、Strategy(策略模式)
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm v
http://cyqdata.cn/cnblogs/article-detail-35956
步步为营 .NET 设计模式学习笔记 二、Abstract Factory(抽象工厂)
我们以一个线程例子来说明下抽象工厂是如何工作的.平时我们都会收发邮件,那我们就做个邮件引擎线程.
定义: 抽象工厂模式是一种创建型的模式。上面的比喻说明了抽象工厂就是生产同一个系列产品的东西,因为这一系列的产品是关联的,如果混用就可能出问题,所以就统一的在抽象工厂中进行创建。当要增加一个
http://cyqdata.cn/cnblogs/article-detail-35914
社区性质网站事件驱动机制-观察者模式应用
OECP社区用户积分与动态部分是使用基于观察者模式的思路实现的。观察者模式的介绍网上有好多,在这就只简单提一下,一带而过吧(如果以后有时间和必要再写一篇初级的让初学的朋友们看的)。这里主要介绍一下我们社区中利用这种模式的一个实现的思路,就作为观察者模式应用的一个实战范例吧. 下面简单说下观察者模式是个什么。所谓&l
http://cyqdata.cn/cnblogs/article-detail-35841
C#中标准Dispose模式的实现
需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类:
托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象;
非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等;
毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继承接口IDispo
http://cyqdata.cn/cnblogs/article-detail-35776
查询对象模式
复杂的数据查询是web系统中很重要的一部分。如果数据访问代码构建在一个Dao对象或者repository对象中其实也是可行的。如果把复杂的数据查询抽离出来单独建模,
让Dao对象和repository对象只留下基本的数据访问访问,不就可行实现更高阶的责任分离了吗。(以下讲解以本文附带的代码为例)
&
http://cyqdata.cn/cnblogs/article-detail-35656
IE6/7 and IE8/9(怪异模式)中form元素默认样式导致的bug
做邮箱首页时碰到的,如下
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>IE6/7下form元素默认样式导致的bug</title>
</head>
<body style="padding:0 400px;">
http://cyqdata.cn/cnblogs/article-detail-35419
IE7,IE8怪癖模式下reflow与expression导致的问题.
在一个项目中为遮蔽FLASH,在IE里的一些特定条件下进行了reflow.
另外,为支持IE6和IE7,IE8怪癖模式下的fixed,使用了CSS表达expression
导致了悲剧的出现...
看效果:
<html><head><meta charset="utf-8" /><title>test</title><style&g
http://cyqdata.cn/cnblogs/article-detail-35411
行为型模式-备忘录模式
using System;using System.Text;using System.Collections.Generic;namespace 备忘录模式{ /* * 备忘录模式意图:用一个中介者对象将一些列对象交互封装,从而降低这些对象间的耦合性并且可以独立地改变对象间的交互关系 */ /// <summary> /// /// <
http://cyqdata.cn/cnblogs/article-detail-35321
ESFramework 与设计模式(01) -- 应用Composite模式
在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中我们介绍的ESFramework提供的消息处理的骨架流程,假设我们有这样的需求,我们需要在网关级消息监控器处放置两个监控器,一个用于对收到的消息进行特殊的验证,另一个用于检查重复的消息。咋一看,可能觉得骨架流程做不到这一点,因为它只为网关级监控器预留了一个
http://cyqdata.cn/cnblogs/article-detail-35260
浅谈设计模式01-策略模式
一、 定义 最近开始研读Head First设计模式,这本书给人的感觉耳目一新,不容易犯困啊。今天和大家分享一下策略模式。 1. 定义: 策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用该算法的客户。 上图为策略模式结构图,其中: Strategy可以声明为接口或者抽象类,主要用来抽象不同的算法或行为; ConcreteStr
http://cyqdata.cn/cnblogs/article-detail-35203
有关于IIS7.5集成模式下的web.config配置问题记录
昨天在IIS7.5中添加配置404页面时遇到了一些问题,记录如下:
一开始在<customError>下的<error>节点配置404不起作用,由于程序运行在IIS7.5集成模式下,经过MSDN和GOOGLE,发现
需要在<system.webServer>节点中配置,我们知道<system.web>节点是iis7.0之前版本的主要配置节点,由于在I
http://cyqdata.cn/cnblogs/article-detail-35192
PHP面向接口编程——耦合设计模式 简单范例
了解些面向对象的知识,自己写了段代码测试一下,欢迎高手指点.....
--------------------------------------------------------------------<?phpinterface js{function ys($a,$b);}
class Af implements js{
function ys($a,$b){ 
http://cyqdata.cn/cnblogs/article-detail-35179
设计模式之一(策略模式)
今天看了《设计模式》的第一章——策略模式。感觉自己懂了一点,但不知道自己在实际中会用不。
定义一系列的算法,把他们一个一个的封装起来,并使它们可以相互替换。该模式使得算法可独立使用它的客户而变换。  
http://cyqdata.cn/cnblogs/article-detail-35068
ESFramework 4.0 快速上手 -- 重登陆模式
在ESFramework框架中基于TCP的服务端引擎(当然也包括Rapid引擎)都采用了这样一条规则:默认情况下,客户端与服务器成功建立TCP连接以后,服务端会从客户端发过来的第一条消息中取出消息头的UserID属性的值,并将其与对应的TCP连接绑定起来。这样,服务端就知道每一个TCP连接所对应的用户UserID,而当我们要求服务端向某个客户端发送消息时,服务端就知道通过哪个TCP连接进行发送了。
http://cyqdata.cn/cnblogs/article-detail-32708
MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据
看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作。表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB。nosql虽然概念新颖,但是MongoDB基本应用实现起来还是比较轻松的,甚至代码比基本的ADO.net访问关系数据源还要简洁。由于其本身的“非关系”的数据存储方式,使得对象关系映射这个环节对于Mongo
http://cyqdata.cn/cnblogs/article-detail-32509
C#设计模式学习笔记-单例模式
最近在学设计模式,学到创建型模式的时候,碰到单例模式(或叫单件模式),现在整理一下笔记。
在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定义是:Ensure a class only has one instance,and provide a global point of access to。它
http://cyqdata.cn/cnblogs/article-detail-32428