装饰模式 in practice :http://programmers.stackexchange.com/questions/240281/how-is-the-decorator-pattern-actually-used-in-practice