Clark To Do The blog of Clark

JavaScript Object Layout

注:本文为译文,原文出处Javascript Object Layout

Java设计模式:适配器模式

注:本文为译文,原文出处java-design-patterns-in-stories

适配器模式在现代Java框架中被广泛应用.

它的场景为: 需要使用一个已经存在的类,并且它的接口与需求并不匹配; 或许你想创建一个可复用的类, 适配没有提供兼容接口的其它类。

Java设计模式:原型模式

注:本文为译文,原文出处java-design-patterns-in-stories

原型模式在大量需要使用相似对象的情况下被广泛应用. 原型模式实现对象的克隆,并且设置被更改的功能. 这种方式会消耗更少的资源, 为什么呢?

克隆方法通过创建新的对象并将成员变量值拷贝至新对象. 通常来说, 这种方式并不会比直接new一个对象在成本上有很大的改善. 但是在类的构造函数中, 如果有一些成本高昂的操作, 克隆方法就会带来巨大的效率提升.比如: 如果需要通过查询数据库获获取变量, 那么利用克隆方法就会避免不必要的重复查询,节省很大的开销.

Java设计模式:生成器模式

注:本文为译文,原文出处java-design-patterns-in-stories

生成器模式的核心功能是引入了逐步构造事物的过程. 例如: 每个产品的生产都会遵循相同的过程, 即使每一步都是不同的.

在下面的例子中, 我们定义了一个饮料的生成器StarbucksBuilder, 此生成器用于生产Starbucks饮品. StarbucksBuilder在生产饮料过程中包含若干个步骤, 例如buildSize()和buildDrink(), 以及最终返回的饮料.

Java设计模式:抽象工厂

注:本文为译文,原文出处java-design-patterns-in-stories

抽象工厂模式在工厂模式基础上添加了另外一个抽象层. 如果将抽象工厂和工厂模式作比较的话, 被添加的抽象层是显而易见的. 抽象工厂是一个用于创建其他工厂的父工厂. 姑且称之为”工厂们的工厂”.

Java设计模式:工厂

注:本文为译文,原文出处java-design-patterns-in-stories

1. 工厂模式的故事

工厂模式被用于基于不同参数来创建对象. 下面是一个通过工厂造人的例子. 如果我们向工厂要一个男孩, 他就会生成一个男孩, 反之亦然. 基于不同的参数, 工厂会生产出不同的事物.

Java设计模式:单例

注:本文为译文,原文出处java-design-patterns-in-stories

单例是最广泛应用的Java设计模式之一. 它通过防止外部对象实例化和修改来控制对象的数量. 这个概念适用于那些当只有一个对象却可以更高效运作的系统,或者那些限制一个特定对象实例数量的系统,例如:

  1. 私有构造器 - 没有其他类可以实例化新对象
  2. 私有引用- 不存在外部修改
  3. 公有静态方法 -唯一可以获得对象的途径

JAVA 6, 7, 8中的字符串池

字符串池

字符串池用于存储独立共享的String对象,此对象将代替其他等值的String对象. 你也可以通过维护一个自定义的Map<String, String>(可以根据需求,通过软引用或弱引用实现)来实现字符串池的功能, 并以Map的value作为标准值. 同时, 你也可以利用JDK提供的String.intern()方法. 由于字符串池操作失去控制时, 非常容易导致OutOfMemoryException, Java 6中的String.intern()已经被很多标准禁用. Oracle Java 7中, 对于字符串池的实现做了很大程度的修改. 详情可以参见: bug_6962931bug_6962930.

浅谈Spring泛型注入

Spring3.2中,已经可以注入包含泛型的List,通过@Autowired注解就可以简单的实现.

@Autowired
private List<Type> beans;

JS中的逗号运算符(译)

概述

逗号运算符会依次执行每个操作数(从左至右),并且返回最后一个操作数的值