发布时间:2012-12-29 01:51:15
不变模式是一种比较普遍的一种设计模式,在我们所使用的一些类中就使用到了不变模式,比如Integer,String等。不变模式中,允许多个类对某个类进行访问,省略了同步化的消耗,使系统运行更加高效,提高了系统的健壮性(robustness)。类在实例化之后,其状态不允许被修改变化,当要修改状态时,需要创建一个新的对象来替换该类,实现状态的修改。给出下面例子: 1: String str = "China";
我们要修改str的状态,虚拟机会冲洗创建一个对象来代替“China”,让str重新指向这个对象:
1: String str = "I ......【阅读全文】
发布时间:2012-12-22 01:46:57
这篇博文主要用来介绍抽象工厂设计模式,也是对自己学习设计模式的一个简单总结。 设计模式主要是用来解决特定条件下某种类型问题的方法,因为在实际编程过程中,某种情况的问题会反复出现,人们便对这些问题进行总结,提出解决这一类问题的方法。抽象工厂也不例外,它的提出主要也是用来解决产生实例的问题。从工厂方法的介绍中了解到,工厂方法一般对有共同抽象父类的产品生产非常适用;并且在产品类型增加时,会导致系统类数量急剧增加,不断导致代码量加大,也加大了系统后续维护的难度。抽象工厂是在原有基础上进一步抽象得到的。 我们首先来看看抽象工厂一般的结构图: 图.1 结构图 从上面图可以清晰知道抽象工厂的结构......【阅读全文】
发布时间:2012-12-19 14:30:12
《Head of First》中讲到,简单工厂其实并不能算作是一种设计模式,只是编程过程中对问题经常处理的一种习惯。但在Java代码中可以经常看到使用。将到工厂模式的时候不可避免的就要介绍简单工厂。 正是由于简单工厂比较简单,对处理一些简单的问题还是很有效的,至少它能将产品的生产和消费解耦出来。 图1.1 制造者生产产品,具体的产品类都是从父类继承下来的。下面举生产电脑为例。我们知道,现在电脑包括传统的台式电脑(desktop),笔记本电脑(notebook)还有比较新的平板电脑(pad)。 他们都有着共同的祖先—PC,因此有下图 图1.2 父类: ......【阅读全文】