2012年6月27日
    
 
        
        
摘要:        
1 简介当你开始建造一个Ajax应用时,你很快就会遇到一些情形,让你感觉自己好像是在重新发明轮子。大量的开发者一想到Ajax,就会直接扑向XMLHttpRequest对象,但这仅仅只是一个开始,而且是Ajax开发中很容易的部分。当你在建造JavaScript富客户端应用时,你会遇到大量令人烦恼的事情。浏览器的兼容性、对于降级(degradation)的支持、混杂在一起的DOM处理、还有那些鲜血淋淋的hack技巧(例如离线存储),所有这些事情都会冒出来。这篇文章将会为你介绍一个远远超出对XHR进行简单封装的工具包。它是那种每个人只要开发富客户端的Ajax应用都应该使用的工具包。没有了它,你就是一    
阅读全文
 
        
            posted @ 2012-06-27 09:58
duanxz
阅读(917)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月26日
    
 
        
        
摘要:        
摘要:现代网站和web应用程序趋向于依赖客户端的大量的javascript来提供丰富的交互。特别是通过不刷新页面的异步请求来返回数据或从服务器端的脚本(或数据系统)中得到响应。在这篇文章中,你将会了解到javascript框架如何更快、更方便的创建互动性强、响应快得网站和web应用程序。导言:JavaScript是一种面向对象的脚本语言,一直以来用作Web浏览器应用程序客户端脚本接口的选择。JavaScript允许Web开发人员编程与网页上的对象的工作,为凭空操作这些对象提供了一个平台。当JavaScript最初推出时,它通常用来提供一些微不足道的功能,如时钟、在浏览器状态栏中滚动文本。另外一    
阅读全文
 
        
            posted @ 2012-06-26 09:24
duanxz
阅读(601)
推荐(0)
        
            
        
        
摘要:        
DojoDojo是目前最为强大的JS框架,它在自己的Wiki上给自己下了一个定义,Dojo是一个用JavaScript编写的开源的DHTML工具箱。Dojo很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo包括Ajax、Browser、Event、Widget等跨浏览器API,包括了JS本身的语言扩展,以及各个方面的工具类库,和比较完善的UI组件库,也被广泛应用在很多项目中,他的UI组件的特点是通过给HTML标签增加TAG的方式进行扩展,而不是通过写JS来生成,Dojo的API模仿Java类库的组织方式。用Dojo写WebOS可谓非常方便。Dojo现在已经4.0了,D    
阅读全文
 
        
            posted @ 2012-06-26 09:10
duanxz
阅读(959)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月21日
    
 
        
        
摘要:        
目录 《linux文件锁flock》 《NIO文件锁FileLock》 一、文件锁基本概念 Linux中软件、硬件资源都是文件(一切皆文件),文件在多用户环境中是可共享的。 文件锁是用于解决资源的共享使用的一种机制:当多个用户需要共享一个文件时,Linux通常采用的方法是给文件上锁,来避免共享的资源    
阅读全文
 
        
            posted @ 2012-06-21 11:02
duanxz
阅读(1455)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月20日
    
 
        
        
摘要:        
UML中的图UML包括九种图:使用案例图、类图、对象图、构件图、部署图、活动图、协作图、状态图、序列图。在这些图中使用案例图、类图、序列图是最有用的。根据其用意,可以将其划分为结构型图和行为型图两种。结构型图:描述系统的静态结构。在显示系统中类及类之间的关系时最有用。行为型图:描述系统的动态性质。在显示系统中元素如何协作产生满足要求的系统行为方面是最有用。结构型图显然,要描述一个设计模式的静态结构,使用类图和对象图是很合适的。行为型图显然,要描述一个设计模式的行为特征,使用状态图和时序图是很合适的。应当指出的是,一个使用UML的系统设计,往往是从使用案例图开始的,而且是一个设计应当是使用案例驱    
阅读全文
 
        
            posted @ 2012-06-20 13:25
duanxz
阅读(730)
推荐(0)
        
            
        
        
摘要:        
据说国外做架构一般用两种工具,一个是大名鼎鼎的IBM Rational Rose,还有一个就是Enterprise Architect。虽然第三方也有很多建模工具很好的支持了UML规范,并且提供了全面的架构功能,但考虑到产品更新换代和IDE契合度上,第三方开源产品缺乏的是专业定期的维护,所以我们最终还是选择相对比较适中的EA来做架构。首先我们找到EA的破解码,这个还是比较容易做到的。毕竟EA只是一个建模工具,我简单阅读了一下Help文档就自己操作了起来。很直接的想到去Create a new Project,EA提供了很多成型的Model可以选择,例如Business Process、User    
阅读全文
 
        
            posted @ 2012-06-20 11:24
duanxz
阅读(1656)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月19日
    
 
        
        
摘要:        
nginx的upstream目前支持5种方式的分配 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend { ser    
阅读全文
 
        
            posted @ 2012-06-19 09:47
duanxz
阅读(1863)
推荐(0)
        
            
        
        
摘要:        
标签接口真有那么重要吗?比如说很多初学者认为java.io.Serializable这样的接口,很多时候可用可不用,不用一样能执行对象系列化功能。 标识接口是没有任何方法和属性的接口。标识接口不对实现它的类有任何语义上的要求,它仅仅表明它的类属于一个特定的类型。标识接口在java语言中有一些很著名的    
阅读全文
 
        
            posted @ 2012-06-19 09:27
duanxz
阅读(515)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月14日
    
 
        
        
摘要:        
<script language="javascript">document.onreadystatechange=function() //当页面状态改变时执行函数{if(document.readyState == "complete") //当页面加载状态为完成时执行条件内容{var li = document.getElementsByTagName("li"); //获取页面所有li节点for(var i=0;i<li.length;i++) //循环li节点{li[i].onclick=function(    
阅读全文
 
        
            posted @ 2012-06-14 14:10
duanxz
阅读(209)
推荐(0)
        
            
        
        
摘要:        
前一阵子在分析竞争对手时,看到某个英文外贸B2C[Business-to-Customer(商家对顾客)]页面<head>代码中有一段:<meta property="og:title" content="LightInTheBox, Global Online Shopping" /><meta property="og:type" content="product"/><meta property="og:url" content="htt    
阅读全文
 
        
            posted @ 2012-06-14 10:18
duanxz
阅读(1529)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月13日
    
 
        
        
摘要:        
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。 依赖(Dependency):元素A的变化会影响元素B,    
阅读全文
 
        
            posted @ 2012-06-13 14:21
duanxz
阅读(93403)
推荐(31)
        
            
        
        
摘要:        
用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者(Actor) 表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 2    
阅读全文
 
        
            posted @ 2012-06-13 13:00
duanxz
阅读(2651)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月12日
    
 
        
        
摘要:        
调停者模式(Mediator) 属于对象的行为模式。1.1.1 定义调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。1.1.2 结构 Mediator:抽象调停者角色,它定义出同事对象到调停者对象得接口,这个角色一般由Java抽象类实现.ConcreteMediator:具体调停者模式,从抽象调停者继承,实现了超类所声明的事件方法,它从具体同事对象接收消息,向具体同事对象发出命令.Coll...    
阅读全文
 
        
            posted @ 2012-06-12 13:24
duanxz
阅读(902)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月5日
    
 
        
        
摘要:        
一、什么是适配器模式 定义:适配器模式属于结构型模式,把一个类的接口变成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。 适配器模式又可以分为4种类型,类适配器模式、对象适配器模式、单接口适配器模式(缺省适配器模式)和双向适配器模式。后2种模式的实现比较复杂并且在    
阅读全文
 
        
            posted @ 2012-06-05 15:44
duanxz
阅读(1830)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月4日
    
 
        
        
摘要:        
如果说 Factory和Prototype是同一个层次的话,那么Abstract Factory和Builder就是更高一级的层次。很多人都对这两个设计模式的区别不是很清楚,包括我也一样,所以今天特地在这里列举一下他们之间的异同点,来做个比较。(以下简称前者为A,后者为B)一、意图的比较A:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。B:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 从上述可以看出,两者同为对象创建型设计模式,但是前者是为了设计一个互相协作的对象组,而后者则侧重于创建一个复杂对象。也就是说虽然两者都提供了一系列类的接口用来.    
阅读全文
 
        
            posted @ 2012-06-04 17:30
duanxz
阅读(514)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月3日
    
 
        
        
摘要:        
一、场景 建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常    
阅读全文
 
        
            posted @ 2012-06-03 18:51
duanxz
阅读(360)
推荐(0)
        
            
        
        
摘要:        
一、 分隔核心单元l Model-View-Controller架构模式l Presentation-Abstraction-Control架构模式l Layer架构模式l Pipes and Filter架构模式二、 在系统运行时的灵活性Component Configurator设计模式(构建一个系统配置机制)三、 自由扩展、变更、自适应l Intercepter设计模式l Visitor设计模式l Strategy设计模式l Extension Object设计模式l Decorator设计模式四、 将系统功能隐藏,分割开Client端对系统功能的直接依赖l Extension Inte    
阅读全文
 
        
            posted @ 2012-06-03 18:18
duanxz
阅读(337)
推荐(0)
        
 
		
    
        
            
        
         
        2012年6月1日
    
 
        
        
摘要:        
1.1.1 什么是外观模式Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。1.1.2 外观模式的结构1.1.1 外观模式的角色和职责门面角色( facade ):这是门面模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。子系统角色(Subsystem classes):实现了子系统的功能。对它而言, façade 角色就和客户角色一样是未知的,它没有任何 façade 角色    
阅读全文
 
        
            posted @ 2012-06-01 16:45
duanxz
阅读(977)
推荐(0)
        
 
		
    
        
            
        
         
        2012年5月30日
    
 
        
        
摘要:        
先从起源说起。在设计界面时,大家可以注意到这样的一种情况,同样的菜单控件,在不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能完全一致。按照最差、最原始的设计,这些不同功能的菜单、或者右键弹出菜单是要分开来实现的,你可以想象一下,word文档上面的一排菜单要实现出多少个“形似神非”的菜单类来?这完全是行不通的。这时,就要运用分离变化与不变的因素,将菜单触发的功能分离出来,而制作菜单的时候只是提供一个统一的触发接口。这样修改设计后,功能点可以被不同的菜单或者右键重用;而且菜单控件也可以去除变化因素,很大的提高了重用;而且分离了显示逻辑和业务逻辑的耦合。这便是命令模式    
阅读全文
 
        
            posted @ 2012-05-30 21:39
duanxz
阅读(967)
推荐(0)
        
 
		
    
        
            
        
         
        2012年5月29日
    
 
        
        
摘要:        
单例模式的破坏示例 类图: 单例模式的优点 ● 由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建、销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显。● 由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时,如读取配置、    
阅读全文
 
        
            posted @ 2012-05-29 21:48
duanxz
阅读(718)
推荐(0)
        
            
        
        
摘要:        
一、简单工厂模式例如:一个动物基类(抽象基类):描述什么是动物N个动物类(继承抽象类):具体是什么动物,狗猫兔一个工厂(根据不同条件生成创建不同动物): new cat ->猫new dog ->狗每次要添加一种动物类,工厂就要多加一个type。导致这个工厂类会变得非常繁重,甚至加入的这个type也    
阅读全文
 
        
            posted @ 2012-05-29 13:47
duanxz
阅读(398)
推荐(0)
        
 
		
    
        
            
        
         
        2012年5月28日
    
 
        
        
摘要:        
工厂模式:建立创建对象的工厂 在面向对象编程中,术语“工厂”表示一个负责创建其他类型对象的类。通常情况下,作为一个工厂的类有一个对象以及与它关联的多个方法。客户端使用某些参数调用此方法之后,工厂会据此创建所需类型的对象,然后将它们返回给客户端。工厂具有下列优点:松耦合,即对象的创建可以独立于类的实现    
阅读全文
 
        
            posted @ 2012-05-28 22:37
duanxz
阅读(532)
推荐(0)
        
            
        
        
摘要:        
一、什么是享元模式Flyweight模式也叫享元模式,原意是“轻量级”模式,它用来解决大量相同对象被多次实例化,从而导致内存被大量占用的情况。享元模式尽可能多地节省对象的生成次数,让多个对象共用一个缓存中的对象。是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。常见应用:1、JDK中的享元模式:Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常量池中的,JAVA会确保一个字符串常量在常量池中只有一个拷贝。String a="abc",其中&    
阅读全文
 
        
            posted @ 2012-05-28 17:00
duanxz
阅读(656)
推荐(0)
        
            
        
        
摘要:        
一、定义、类型及类图 定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。(策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户——出自《大话设计模式》) 类型:行为类模式 类图 策略模式是对算法的封装,把一系列的算法分别封装到对应    
阅读全文
 
        
            posted @ 2012-05-28 09:53
duanxz
阅读(771)
推荐(0)
        
 
		
    
        
            
        
         
        2012年5月25日
    
 
        
        
摘要:        
1 概述 1.1 引言 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。比如,一张照片,不改变照片本身,增加一个相框。 装饰模式是一种用于替代继承的技术,无须定义子类即可给对象动态增加职责,使用对象之间的关联关系来代替继承关系,在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰    
阅读全文
 
        
            posted @ 2012-05-25 17:27
duanxz
阅读(396)
推荐(0)