`
文章列表
在Java语言的IO库的设计中,使用了两个结构模式,即装饰模式和适配器模式,本章就围绕这两个模式讨论Java的IO库的设计. 一:引言 Java语言采用流的机制来实现输入/输出,所谓流,就是数据的有序排列,它可以从某个源(流源)出来,到某个目的地(流汇)。根据流的方向可以将流分为输出流和输入流.例如Java程序可以用FileInputStream类从一个磁盘文件读入byte类型数据,也可以用FileOutputStream类向磁盘文件写入byte类型的数据. 在实际应用中,程序需要写出的数据往往是非常结构化的信息,因此这些byte类型的数据实际上是一些数值,文字,源代码等。 Java的IO ...
装饰模式(Decorator)又名包装(Wrapper)模式,装饰模式以对客户端透明的方式扩展对象的功能,是继承的一个替代方案. 一:引言 孙悟空有七十二般变化,他的每一种变化都给他带来一种附加本领。他变成鱼时,就可以到水里游泳,他变成鸟时,就可以在天上飞行,而不管悟空怎么变化,在二郎神眼里,他永远是那只猢狲. 装饰模式以对客户透明的方式动态地给一人对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同,装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 装饰模式使用原来被装饰的类的一个子类的实例,把客户端的调用委派到被装饰类,装饰模式的关键在于这种扩展 ...
合成模式是对象的结构模式,有时又叫做部分-整体模式。 一个基于继承的类型的等级结构便是一个树结构,一个基于合成的对象结构也是一个树结构,本章将要介绍的合成模式也是一个处理对象的树结构的模式。 一:有向树结构的种类 (A)由上向下的树图---每一个树枝节点都有箭头指向它的所有的子节点,从而一个客户端要求一个树枝节点给出所有的子节点,而一个节点却不知道它的父节点。 (B)由下向上的树图---在一个由下向上的树图中,每一个节点都有箭头指向它的父节点,但是一个父节点却不知道其子节点。 (C)双向的树图 二:安全式和透明式的合成模式 合成模式涉及到三个角色: (A)抽象构件(Componen ...
一:问题 几乎所有的应用程序都有一些系统常量需要存储在程序外部,一个常见的做法是使用一个配置文件存储这些常量,这样,一旦常量有变化的话,无需修改程序代码就可以重新配置一个系统。在Java编程里,一个配置文件就是.properties文件或者XML文件。使用.properties文件虽然是现行工业标准,但正在渐渐被XML文件所取代,一个配置文件所需要的无非就是存储一些代码和代码所代表的值组成的对,即key-value对,如.properties配置文件的内容代码清单: name=milenfan website=www.milenfan.com email=jyumath_Milenf ...
缺省适配模式为一个接口提供缺省实现,这样子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展 一:鲁智深的故事 和尚要做什么?念经,打坐,习武..如果设计一个和尚接口,给出所有的和尚都需要实现的方法: interface和尚{ public void念经(); pulbic void打坐(); public void习武(); public String getName(); ................... } 如果这样的话,所有的和尚类都应当实现接口所定义的全部方法,如: class鲁智深implements和尚{ public void ...
适配器模式把一类的接口变成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 一:名字的由来 这很像变压器(Adapter),变压器把一种电压变成另一种电压。把美国的电器拿回中国 ...
结构模式描述如何将类或者对象结合在一起形成更大的结构,结构模式描述两种不同的东西:类与类的实例,根据这一不同,结构模式可以分为类的结构模式和对象的结构模式两种 (1)类的结构模式:类的结构模式使用继承把类,接口组合在一起,以形成更大的结构,当一个类从父类继承并实现某个接口时,这个新的类就把父类的结构和接口的结构组合在一起,类的结构模式是静态的 (2)对象的结构模式,对象的结构模式描述怎么样把各种不同类型的对象组合在一起,以实现新的功能方法,对象的结构模式是动态的
本章主要講解怎么樣使用java.beans.Beans類對已經過串行化處理的JavaBean進行解凍處理,在本章會遇到工廠方法模式,標識接口模式和原始模型模式. 一:什么是冷藏和解凍 (1)串行化使得一個程序可以把一個完整的對象寫到一個Byte ...
孙悟空在与黄风怪的战斗中,使用了一个身外身的手段:把毫毛揪下一把,用口嚼和粉碎,往一喷叫声'变',变有百十个行者,都是一样的打扮!..老孙的这种身外身的手段在面向对象的设计领域里叫做原始模式. 一:克隆满足的条 ...
一:什么是产品内部表象和建造模式 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象。不同的产品可以有不同的内部表象,也就是不同的零件。使用 ...
一个真实的项目: 这是一个真实的而向全球消费者的华尔街金融网站项目的一部分,系统根据用户选择的语言将网站的静态文字和动态文字全部转换为用户所选择的语言.这实际就是多国语的实现. 单例模式的精神是允许有限个实 ...
问题描述:邮件发送 一般来说,一个公司会有数个SMTP服务器,公司须保证至少一台SMTP服务器正常运行,以便处理发送电子邮件的工作. 解决方案:使用Java的JNDI功能,可以完成这样的功能:写一个Java程序自动从DNS服务器那里得到一个公司内登记过的所有的SMTP服务器清单(称为MX记录),然后让它一个个地试验清单上所有的服务器,直到把邮件 这章主要讲的是如何用JNDI编程进行发Mail.
Java中的单例模式是指在程序的运行过程中,jvm中只存在一个实例。然而注意,Spring中配置的singleton是相对于IOC的工厂而言,一个IOC工厂里只有一个实例,然而在jvm中可能有多个实例,他们的参照物不同. 一:单例类有如下特点 A: ...
一:什么是抽象工厂模式 抽象工厂是工厂模式中最为抽象和最具一般性的一种形态,它是面对多个产品等级结构的系统设计.假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构,那么为了将消费这些产品对象的责任和创建这些产品对象的责任分割开来,可以引进抽象工厂模式,这样的话,消费产品的一方不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品.抽象工厂模式涉及到以下的角色: A:抽象工厂(AbstractFactory)角色:这个角色是工厂方法模式的核心,它是与应用系统的商业逻辑无关的,通常使用Java接口或者抽象类实现,而所有的具体工厂必须实现这个Java接口或继 ...
工厂方法模式是类的创建模式,它的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中,它仅仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这个细节. 二:优化简单工厂模式中的"农场"系统 现在把这个农场的管理变得更加专业化:苹果由"苹果园丁"负责,葡萄由"葡萄园丁"负责,草莓由"草莓园丁"负责,这三个"园丁"都是实现了抽象的"水果园丁"接口的具体工厂类,而"水果园丁"则扮演抽象工厂的角色.源代码如下: package ...
Global site tag (gtag.js) - Google Analytics