摘要:闭包的概念、形式与应用摘自:http://www.ibm.com/developerworks/cn/linux/l-cn-closure/index.html#resources简介:随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,我们经常听到一个名词——闭包,很多人会问闭包是什么?闭包是用来做什么的?本文汇集了有关闭包的概念、应用及其在一些编程语言中的表现形式,以供参考。什么是闭包?闭包并不是什么新奇的
阅读全文
摘要:As a data-access technology designed to meet the needs of a variety of development styles, the Microsoft Entity Framework presents developers with a lot of options. Some of these choices need to be made early on in your development cycle and will impact what options you’ll have further along in your
阅读全文
摘要:考虑使用Singleton 模式时拥有子类别的问题,在Singleton模式中的getInstance()通常是一个静态方法,不能在子类别中重新定义它,关于子类别实例的产生交由getInstance()来进行是最好的选择,例如:publicclassSingleton{privatestaticSingletoninstance=null;privateSingleton(){//....}publicstaticSingletongetInstance(){if(instance==null){//getEnv表示系统环境变数Stringstyle=getEnv("style&qu
阅读全文
摘要:问题在保持可接受的性能级别的同时,如何设计一个可适应负载变化的、可伸缩的基础结构层?影响因素在设计可伸缩的基础结构层时,请考虑下列影响因素:对于任何指定的应用程序来说,单独的服务器会受到最大负载容量的限制。例如,如果单台服务器将 Web 页作为基于 Web 的应用程序的一部分提供给用户,而且用户或事务负载增加并超过了服务器的限制,则应用程序性能将降至预期值以下,在最坏的情况下还会变得不可用。单独的服务器具有最大物理性能限制,包括总线速度、内存量、处理器数和任一服务器可以使用的外围设备数等限制。例如,如果服务器只能容纳四个处理器,则不能为了提高性能而添加第五个处理器。某些应用程序对于可以使用的
阅读全文
摘要:上下文您已经决定在设计或修改基础结构层时使用群集以提供高度可用的服务。问题您应该如何设计一个高度可用的基础结构层,来防止因单台服务器或它所运行的软件出现故障而导致的服务丢失?影响因素在设计高度可用的基础结构层时,请考虑下列影响因素:硬件组件、应用程序或服务出现故障可以使应用程序无法使用或不可用。 例如,设想一台正在提供应用程序的服务器出现了电源故障。 如果这是唯一的服务器或服务器中的唯一电源,则存在故障单点,并且应用程序将不可用。计划内的服务器停机时间可以影响应用程序的可用性。 例如,如果要更新无备用服务器的一台数据库服务器上的操作系统,您可能必须停止应用程序运行才能在服务器上安装修补程序。监
阅读全文
摘要:一、前言 最近也许是由于假期的原因,我发布的文章的速度变慢了,对大家说下抱歉,这个系列的确我很难写,感谢大家对我的支持和关注,的确我在发布后得到大家的支持和认可,让我有了更多的动力,之前发布的有些内容,可能对各层讲解的内容的广度还不够,当然这和我个人的水平面有关,还请各位多多提出宝贵意见和建议。 从本篇开始,我将会采用更加规范的格式,更严谨的求知态度,更加准确的表达,去将接下来的系列文章写完,并且与群中的很多朋友交流后,他们希望出一个总的PDF电子书,这样可以方便阅读,的确谢谢各位的支持,我目前将以后每篇写的内容,放一份PDF格式的在群共享中,有需要的朋友可以进行相应的下载,由于本人的写作水平
阅读全文
摘要:原文地址:http://www.cnblogs.com/abatei/archive/2009/06/23/1509790.htmlC#中实现了哈希表数据结构的集合类有:(1)System.Collections.Hashtable(2)System.Collections.Generic.Dictionary<TKey,TValue>前者为一般类型的哈希表,后者是泛型版本的哈希表。Dictionary和Hashtable之间并非只是简单的泛型和非泛型的区别,两者使用了完全不同的哈希冲突解决办法。Dictionary我已经做了动态演示程序,使用的是Window应用程序。虽然Dict
阅读全文
摘要:原文地址:http://www.cnblogs.com/abatei/archive/2008/12/17/1356565.html介绍今天我们来介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas和Robert Sedgewick改成一个比较摩登的名字:红黑树。红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。自从红黑树出来后,AVL树就被放到了
阅读全文
摘要:What is Model View Presenter?MVP pattern is one of the major patterns used for extracting business logic outside of UI elements and by that, enabling unit testing the UI without the need for using specific UI based testing toolsIf you are new to Model View Presenter pattern at all, you should check
阅读全文
摘要:Usually, usage of design patterns is associated with code executing in the lower tiers, but design patterns can be very usefully used in solving problems of the UI world too.Two of my architecture blog posts are covering the examples related to patterns usage in solving the Web problems:Composite de
阅读全文
摘要:IntroductionThe recent growth in UI-centric technologies has refueled interest in presentation layer design patterns. One of the most quoted patterns, Model-View-Controller (MVC), is thought to be designed by Trygve Reenskaug, a Norwegian computer engineer, while working on Smalltalk-80 in 1979 [1].
阅读全文
摘要:C#中Specification模式的实现今天有朋友在问了我这么一个问题:怎么实现OrWhere的功能?我猜测,他的意思是要实现这样的功能:static IEnumerable<int> MorePredicate(IEnumerable<int> source){ return source.OrWhere(i => i > 0); // 或所有的正数}static void Main(string[] args){var array = Enumerable.Range(-5, 10).ToArray(); var odd = array.Where(i
阅读全文
摘要:数据库范式(Normal forms):是用于规范关系型数据库设计,以减少谬误发生的一种准则。1NF(first normal form):Table faithfully represents a relation and has norepeating groups.数据库表必须如实地展现“关系”,并且不允许有“重复组”出现。这样的概念真是令人痛心疾首,我们只好再搬出1NF的的作者之一Chris Date的解释:1. There's no top-to-bottom ordering to the rows.(任意两行没有特定的顺序关系。不存在一个特定的理由要某一行必须在另一行之前
阅读全文
摘要:作为一个很典型的设计模式,Singleton模式常常被用来展示设计模式的技巧,并且随着技术的演进,.NET语言和Java都已经把经典《Design Patterns : Elements of Reusable Object-Oriented Software》中所定义的Singleton模式作了完善,例如C#可以通过这样一个非常精简但又很完美的方式实现了一个进程内部线程安全的Singleton模式。C#最经典Singleton模式的实现(Lazy构造方式)publicclassSingleton{privatestaticSingletoninstance;//唯一实例protectedS.
阅读全文
摘要:接上篇数据上下文基类是上下文接口的实现类,其给出了接口的 部分实现,具体的上下文类可以继承自上下文基类上下文基类的代码如下: privateboolisInTransaction=false;privateboolisDirty=false;privateList<ScheduledAction>actions=newList<ScheduledAction>();privateIdentityMapidentityMap=newIdentityMap();protectedabstractIDataMapper<T>GetDataMapper<T&g
阅读全文
摘要:如下IDataDontext接口所示给出了数据访问层的数据上下文接口:View Code///<summary>///Themainruntimeinterfacebetweentheapplicationandthedataaccesslayer.Thisisthecentral///APItypeabstractingthenotionofapersistenceservice.///</summary>publicinterfaceIDataContext:IDisposable{///<summary>///Reportswhetherthis<
阅读全文
摘要:领域模型管理与AOP摘自:InfoQ:原文地址:http://www.infoq.com/cn/articles/aspects-of-domain-model-mgmt 正如从像《领域驱动设计》[Evans DDD]和《领域驱动设计和模式应用》[Nilsson ADDDP]这些书中学到的一样,在应用架构中引入领域模型模式(《企业应用架构模式》[Fowler PoEAA])一定会有很多益处,但是它们并不是无代价的。使用领域模型,很少会像创建实际领域模型类、然后使用它们那么简单。很快你就会发现,领域模型必须得到相当数量的基础架构代码的支持。 领域模型所需基础架构当中最显著的当然是持久化——通常是
阅读全文
摘要:NoSQL背后的两种模式 NoSQL其实并不是什么妖魔鬼怪,相反,NoSQL的真谛其实应该是Not Only SQL,其产生背景是在数据量和访问量逐渐增大的情况下下,人为地去添加机器或者切分数据到不同的机器,变得越来越困难,人力成本越来越高,于是便开始有 了这样的项目,它们的本意是提高数据存储的自动化程度,减少人为干预的时间,让负载更加均匀等。在国际上,真正的代表之作有来自Google的 BigTable 和Amazon 的Dynamo,他们分别使用了不同的基本原理。 MapReduce 这是历史最久的一种模型,典型的代表是BigTable。Map表示映射,Reduce表示化简。MapRedu
阅读全文
摘要:1. Overview UML设计类中,类的关系分为Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(组合关系)五种! 2. Generalization(泛化) Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。 3. Dependency(依赖) 表现为函数中的参数(use a)。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依
阅读全文
摘要:Part 1 Introduction Martin Fowler writes: "When you're pulling data in and out of a database, it's important to keep track of what you've changed; otherwise, that data won't be written back into the database. Similarly you have to insert new objects you create and remove any objects you delete."
阅读全文