lzx-design-pattern: add headfirst code