摘要: 正则表达式基础知识 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。如: JScriptVBScript匹配/^\[ \t]*$/"^\[ \t]*$"匹配一个空白行。/\d{2}-\d{5}/"\d{2}-\d{5}"验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。/<(.*)>.*<\/\1>/"<(.*)>.*<\/ 阅读全文
posted @ 2011-03-07 16:55 stone lv 阅读(143) 评论(0) 推荐(0)
摘要: 1. 动机在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?如何提供一种“封装机制”来隔离出“这个易变对象”的变化,从而保持系统中“其他依赖该对象的对象”不随着需求改变而改变?2. 意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟到子类。3. 结构4. 几个要点• Factory Method模式主要用于隔离类对象的使用 者和具体类型之间的耦合关系。面对一个经常变 化的具体类型,紧耦合关系会导致软件的脆弱。• Factory Method模式通过 阅读全文
posted @ 2011-03-07 16:11 stone lv 阅读(687) 评论(0) 推荐(0)
摘要: 1. 动机在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?2. 意图将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。3. 结构4. 几个要点• Builder 模式主要用于“分步骤构建一个复杂的对 象”。在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。• 变化点在哪里,封装 阅读全文
posted @ 2011-03-07 16:05 stone lv 阅读(671) 评论(0) 推荐(0)
摘要: 1. 动机在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?2. 意图提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。3. 结构4. 几个要点•“系列对象”指的是这些对象之间有相互依赖、或作用的关系,例如游戏开发场景中的“道路”与“房屋”的依赖,“道路”与“地道”的依赖。• Abstract Factory模式主要在于应对“新系列”的需求变动。 其缺点在于难以应对 阅读全文
posted @ 2011-03-07 16:00 stone lv 阅读(923) 评论(0) 推荐(0)
摘要: 概述:该讲主要描述了 面向对象设计模式的分类以及Singleton单件模式。一、面向对象设计模式的分类从目的来看:– 创建型(Creational)模式:负责对象创建。– 结构型(Structural)模式:处理类与对象间的组合。– 行为型(Behavioral)模式:类与对象交互中的职责分配。从范围来看:– 类模式 处理类与子类的静态关系。– 对象模式 处理对象间的动态关系。二、Singleton单件模式1. 动机在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?这应 阅读全文
posted @ 2011-03-07 15:42 stone lv 阅读(1126) 评论(0) 推荐(0)
摘要: 该讲描述了面向对象与设计模式的基础思想以及两者之间的关系。下面是择取的个人认为比较有收获的观点:1. 对象是什么?– 从概念层面讲,对象是某种拥有责任的抽象。– 从规格层面讲,对象是一系列可以被其他对象使用– 从语言实现层面来看,对象封装了代码和数据。2.• 针对接口编程,而不是针对实现编程– 客户无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望 的接口。• 优先使用对象组合,而不是类继承– 类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对 象具有良好定义的接口,耦合度低。• 封装变化点– 使用封装来创 阅读全文
posted @ 2011-03-07 15:20 stone lv 阅读(1782) 评论(0) 推荐(0)