06 2014 档案
摘要:标准化表示从你的数据存储中移去数据冗余 (redundancy)的过程。如果数据库设计达到了完全的标准化,则把所有的表通过关键字连接在一起时,不会出现任何数据的复本 (repetition)。标准化的优点是明显的,它避免了数据冗余,自然就节省了空间,也对数据的一致性(consistency)提供了根...
阅读全文
摘要:一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC...
阅读全文
摘要:面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有...
阅读全文
摘要:求解算法的时间复杂度的具体步骤是: ⑴ 找出算法中的基本语句; 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 ⑵ 计算基本语句的执行次数的数量级; 只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高...
阅读全文
摘要:原文地址:http://blog.csdn.net/chuyuqing/article/details/19629229在对《Set和hashCode()》的一篇原创文章写完后,由于对自己的一些论断产生了模糊和怀疑,因此又对Set进行了一些研究,形成本篇。在Set的使用场景中,我们不外乎看中了她存储...
阅读全文
摘要:装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。具体被装饰者和抽象装饰类都继承于抽象被装饰者类,继承的是类型,而不是行为。行为来自装饰者和基础组件,或与其他装饰者之间的组合关系。装饰模式的角色 抽象构件角色(Component):给出一个抽象接口,以规范准备...
阅读全文
摘要:一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且...
阅读全文
摘要:1.概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示] 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。消费者最后是通过建造者得到产品而不是通过指导者,另外,消费者无...
阅读全文
摘要:Abstract Factory定义 为一系列相关对象或相互依赖的对象创建一个接口,而无需指定它们的具体类。抽象工厂在这里起到一个约束的作用,并提供所有子类的一个统一外观,来让客户端使用上面的uml图,我们会发现,ConcreteFactory1只会生成A1+B1,是有严格约束的,如果没有这个约束条...
阅读全文
摘要:一、简单工厂1.1 使用场景 1、工厂类负责创建的对象比较少; 2、客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 3、由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。1.2优缺点 优点: 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的...
阅读全文
摘要:原文地址:http://blog.csdn.net/jason0539/article/details/21219043一直做在安卓用xml作界面,对于java的控件不熟悉,也不习惯用代码做UI尤其是布局。找了一下发现可以安装windowbuilder来实现java的可视化编程,但是很多资料里的连接...
阅读全文
摘要:一、备忘录(Memento)模式结构备忘录对象是一个用来存储另外一个对象内部状态的快照(snapshot)的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来适合的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。...
阅读全文
摘要:原型模式其实就是java的拷贝机制原文出处:http://blog.csdn.net/zhengzhb/article/details/7393528定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Pr...
阅读全文
摘要:模板方法在servlet中的应用:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html原文出处:http://blog.csdn.net/zhengzhb/article/details/7405608定义:定义一个操...
阅读全文
摘要:意图:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作动机:将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。这里可能会有一个疑惑,就是为什么要将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来,其实道理很简单,我们假设司令发...
阅读全文
摘要:定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图: 1 public static void main(String[] args) { 2 List list = new ArrayList(); 3 list.add(...
阅读全文
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 1 interface Service { 2 3 ...
阅读全文
摘要:原文地址:http://blog.csdn.net/jason0539/article/details/23297037概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自...
阅读全文
摘要:原文出处:http://blog.csdn.net/zhengzhb/article/details/7430098定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构 中介者模式又称...
阅读全文
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式有三个角色组成:1) 门面角色( facade ):这是门面模式的核心。它被...
阅读全文
摘要:定义(GoF《设计模式》): 将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和使用具有一致性。及角色: 1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。 2.Leaf...
阅读全文
摘要:1.书籍《JHead First 设计模式(中文版)》《JAVA与模式》《大话设计模式》2.连接地址http://blog.csdn.net/jason0539/article/category/2093817http://www.cnblogs.com/mengdd/tag/设计模式/java 设...
阅读全文
摘要:陆陆续续看了gof,大话设计模式等books,对于设计模式仍然是徘徊于门外,随偶有感悟,然久必忘记,是实则悟性太低。因此作此文,结合博客中一系列关于设计模式的博文,加深对设计模式的理解,同时备自己随时复习。1.设计模式应用场景当我们遇到整个应用生命周期中,只需要一个对象的时候,我们首先考虑到的就是使...
阅读全文
摘要:原文地址:http://www.blogjava.net/wangle/archive/2007/04/25/113545.html从桥接模式与策略模式谈起桥接(Bridge)模式是结构型模式的一种,而策略(strategy)模式则属于行为模式。以下是它们的UML结构图。在桥接模式中,Abstrac...
阅读全文
摘要:桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿。 桥接模式的做法是把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上的变化,通过这种
阅读全文
摘要:适配器模式比较简单,偷个懒,直接转载一篇。个人理解:* 类适配器是通过继承来完成适配 * 对象适配器是通过传递对象来完成适配 * 不管哪种,其实都是通过引用特殊接口的对象来完成特殊接口的适配调用转载地址:http://blog.csdn.net/jason0539/article/details/2...
阅读全文
摘要:谨以此文献给仍碌碌无为,却渴望成功的Me!,码农路漫漫,需要有一颗坚定的心本文转载自左耳朵耗子的博文,地址:http://coolshell.cn/articles/4990.html月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who ...
阅读全文
摘要:享元的定义:享元模式英文称为“Flyweight Pattern”,如果翻译成为羽量级模式,估计会让人有点捉摸不透,而享元,则可以较好的体现该模式的用途,共享元素享元的用途:我们知道,在java应用中,会出现许多String a="123",String b="123"之类的String类型的变量,...
阅读全文
摘要:最近参加面试,总是被问到设计模式的问题。本人作为一个实用派,完全没搞懂作为一个功能的实现者,设计模式到底有多重要。当然,本人的意思不是说设计模式没用或者不该了解,但是这是一个度的问题,简单的模式,常用的模式,了解并会用,是必然的,但是其他模式,更深层的东西,也许留给架构师来理解更好。毕竟程序员不是架...
阅读全文
摘要:1.代理模式定义:代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需...
阅读全文
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述状态(State)模式的: 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。 状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。状态模式...
阅读全文
摘要:策略模式的定义 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。 策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。策略模式的组成 抽象策略角色:策略类,通常由一个接口或者抽象类实现。 具体策略角色:包装了相关的算法和行为。 环境角色:持有一个策略类的引用,最终给客户...
阅读全文
摘要:先跳过理论,JDK中已经实现了观察者模式的框架,我们先看下是如何使用的,接着看下JDK中是如何设计的,最后来自己实现观察者模式及其理论介绍1.如何用 1 public class Guanchazhe { 2 3 public static void main(String[] args)...
阅读全文
摘要:原文地址:http://my.oschina.net/u/158457/blog/28536排序的方法很特别,有点类似插入排序的味道先看下代码 1 public class Sort { 2 private static boolean[] temp = new boolean[10000]...
阅读全文
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并...
阅读全文