12 2013 档案
摘要:Pom文件中的groupId、artifactId、version和name,这三个元素定义了一个项目的基本的坐标,在Maven世界中,任何的jar、pom或者war都是基于这些基本的坐标惊醒区分。groupId:定义了项目属于哪个组,这个项目组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp。这里conup项目的groupId应该是cn.edu.nju.moon.conupartifactId:定义了当前Maven项目在组中唯一的ID,我们为这个Hello World项目定义了a
阅读全文
摘要:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法的情况下,重新定义算法中的某些步骤。模板方法模式定义了一个算法的步骤,并允许子类为一个活多个步骤提供实现模板方法的重点在于提供一个算法,并让子类实现某些步骤。
阅读全文
摘要:外观(Facade)提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观(Facade)并没有“封装”子系统的类,外观只提供简化的接口。所以客户如果觉得有必要,仍然可以直接使用子系统的类。这是外观模式一个很好的特征:提供简化的接口的同时,仍然将系统完整的功能暴力出来,以供需要的人好似用。外观模式也允许你将客户实现从任何子系统中解耦。比方说,你若够想要升级你的家庭影院,采用全新的和以前不一样接口的组件。如果当初你的客户代码是针对外观而不是子系统编写,现在你就不需要改变客户代码,只需要修改外观代码。适配器的意图是将接口转换成不同的接口,而外观的意图是,
阅读全文
摘要:策略模式的类图和状态模式是一样的,但两个模式的区别在于他们的“意图”以策略模式而言,客户通常主动制定Context所要组合的策略对象是哪一个。现在,固然策略模式让我们更有弹性,能够在运行时改变策略,但对于某个context对象来说,通常都只有一个最适当的策略对象。一般来说,我们把策略模式想成是除了继承之外的一种弹性方案。如果你使用继承定义了一个类的行为,你将被这个行为困住,甚至要修改它都很难。有了策略模式,你可以通过组合不同的对象来改变行为。而状态模式,通过将一群行为封装在状态对象中,context的行为随时可委托到那些状态对象中的一个。随着时间的流逝,当前状态在状态对象集合中游走改变,以反映
阅读全文
摘要:1.找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起2.针对接口编程,而不是针对实现编程3.多用组合,少用继承4.最少知识原则(Law of Demeter):只和你的密友谈话,减少对象之间的交互。(外观模式) 该原则提供了一些方针:就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法: a.该对象本身 b.被当做方法的参数而传递进来的对象 c.此方法所创建或实例化的任何对象 d.对象的任何组件5.好莱坞原则:别调用我们,我们会调用你(模板方法模式) 该原则运行底层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎样使用这些底层组件。...
阅读全文
摘要:状态模式允许对象在内部状态改变时改变他的行为,对象看起来好像修改了它的类1.将每个状态的行为局部化到它自己的类中2.将容易产生问题的if语句删除,以方便日后的维护3.让每一个状态“对修改关闭”,让Context“对扩展开放”,因为可以加入新的状态类
阅读全文