对接口编程而不是对实现编程
优先使用对象组合而不是继承
导论
创建型模式
结构型模式