JavaScript Object Layout
21 Aug 2014注:本文为译文,原文出处Javascript Object Layout
注:本文为译文,原文出处java-design-patterns-in-stories
适配器模式在现代Java框架中被广泛应用.
它的场景为: 需要使用一个已经存在的类,并且它的接口与需求并不匹配; 或许你想创建一个可复用的类, 适配没有提供兼容接口的其它类。
注:本文为译文,原文出处java-design-patterns-in-stories
原型模式在大量需要使用相似对象的情况下被广泛应用. 原型模式实现对象的克隆,并且设置被更改的功能. 这种方式会消耗更少的资源, 为什么呢?
克隆方法通过创建新的对象并将成员变量值拷贝至新对象. 通常来说, 这种方式并不会比直接new一个对象在成本上有很大的改善. 但是在类的构造函数中, 如果有一些成本高昂的操作, 克隆方法就会带来巨大的效率提升.比如: 如果需要通过查询数据库获获取变量, 那么利用克隆方法就会避免不必要的重复查询,节省很大的开销.
注:本文为译文,原文出处java-design-patterns-in-stories
生成器模式的核心功能是引入了逐步构造事物的过程. 例如: 每个产品的生产都会遵循相同的过程, 即使每一步都是不同的.
在下面的例子中, 我们定义了一个饮料的生成器StarbucksBuilder, 此生成器用于生产Starbucks饮品. StarbucksBuilder在生产饮料过程中包含若干个步骤, 例如buildSize()和buildDrink(), 以及最终返回的饮料.
注:本文为译文,原文出处java-design-patterns-in-stories
抽象工厂模式在工厂模式基础上添加了另外一个抽象层. 如果将抽象工厂和工厂模式作比较的话, 被添加的抽象层是显而易见的. 抽象工厂是一个用于创建其他工厂的父工厂. 姑且称之为”工厂们的工厂”.
注:本文为译文,原文出处java-design-patterns-in-stories
工厂模式被用于基于不同参数来创建对象. 下面是一个通过工厂造人的例子. 如果我们向工厂要一个男孩, 他就会生成一个男孩, 反之亦然. 基于不同的参数, 工厂会生产出不同的事物.
注:本文为译文,原文出处java-design-patterns-in-stories
单例是最广泛应用的Java设计模式之一. 它通过防止外部对象实例化和修改来控制对象的数量. 这个概念适用于那些当只有一个对象却可以更高效运作的系统,或者那些限制一个特定对象实例数量的系统,例如:
字符串池用于存储独立共享的String对象,此对象将代替其他等值的String对象. 你也可以通过维护一个自定义的Map<String, String>(可以根据需求,通过软引用或弱引用实现)来实现字符串池的功能, 并以Map的value作为标准值. 同时, 你也可以利用JDK提供的String.intern()方法. 由于字符串池操作失去控制时, 非常容易导致OutOfMemoryException, Java 6中的String.intern()已经被很多标准禁用. Oracle Java 7中, 对于字符串池的实现做了很大程度的修改. 详情可以参见: bug_6962931 和 bug_6962930.
Spring3.2中,已经可以注入包含泛型的List,通过@Autowired注解就可以简单的实现.
@Autowired
private List<Type> beans;