Chapter 21_3 模式】的更多相关文章

很多地方都会看到各种匹配模式,每次接触这些函数,颇使人望文生畏. 今天就来好好面对它.认识它.了解它.最后战胜它. 匹配模式都是用一串常规的字符串来描述,最主要的是理解这些字符串的语法及含义(即它能匹配到什么). ^$()%.[]*+-? 魔法字符,具有特殊的含义. %作为这些魔法字符的转义字符,还可以用于其他所有非字母和数字. %.    表示匹配一个"." %% 表示匹配一个“%” 当不确定一个字符是否需要转义时,应该前置一个转义符. . 所有字符 %a 字母 %c 控制字符 %d…
首先贴一段代码: package xiao; import java.util.Scanner; class CashSuper{    private int num;    private double price;    public int getNum() {        return num;    }    public void setNum(int num) {        this.num = num;    }    public double getPrice() {…
建造者模式又叫生成器模式:将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 代码: package xiao; import java.util.ArrayList;import java.util.List;class Product{    List<String> parts = new ArrayList<String>();    public void add(String part){        parts.a…
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个模式使得这一子系统更加容易使用. 外观模式三个阶段: 首先,在设计初期阶段,应该要有意识的将不同的两个层分离. 其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观可以提供一个简单的接口,减少他们之间的依赖. 最后,在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,可以为系统开发一个外观类. 示例代码如下: package xiao;class Fund{    private S…
我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模版模式来处理. 模版方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模版方法通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势,相当于提供了一个很好的代码复用平台. 当不变和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现.我们通过模版方法模式把这些行为搬移…
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 简单的说就是clone一个对象实例.使得clone出来的copy和原有的对象一模一样. 插一个简单使用clone的例子,如果一个对象内部有可变对象实例的话,public API不应该直接返回该对象的引用,以防调用方的code改变该对象的内部状态.这个时候可以返回该对象的clone. 一般而言,我们要的clone应该是这样的.copy和原型的内容一样,但是又是彼此隔离的.即在clone之后,改变其中一个不影响另外一个. 原…
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行.你想要加功能,本来是改工厂类的,而现在是修改客户端. 代码如下: package xiao; class LeiFeng{ public void sweep(){ System.out.println("sweep!"); } public void wash(){ System.out.println("wash!&q…
代理模式:为其它对象提供一种代理以控制对这个对象的访问. 代码: package xiao; class Girl{ private String name; public void setName(String name){ this.name = name; }}interface GiveGift{ public void giveDolls(); public void giveFlowers(); public void giveChocolate();}class Pursuit i…
80x86 保护模式极其编程       首先我不得不说.看这章真的非常纠结...看了半天.不知道这个东西能干嘛.我感觉唯一有点用的就是对于内存映射的理解...我假设不在底层给80x86写汇编的话.我真不知道这章能对我有什么用. .. update: {           当我决定暂停下来的时候,暂停这篇blog,我认为反思这样的行为都是伟大的.对于之前"能对我有什么用"的想法有了不同的见解.我发现这个保护模式极其编程还是挺有意思的.我之前不知道APUE里面讲current save…
在这个模块中我们要创建的应用是一个简单的钟.当一个用户访问这个网站时,这个应用会更具服务器的系统时间显示当前的时间.默认情况下,这个应用使用标准国际时间(UTC)时区显示当前时间.用户可以使用Google帐户登录和偏好设定来自定义时区. 这个应用演示了三个App Engine的特性: ・datastore,主要存储数据,一致的,可靠的,可扩展的. ・内存缓存,辅助存储,比datastore要快,但从长远看不一定时持久的. ・Google帐户,使用Google用户帐户系统来验证和识别用户的能力.…