Head First Design Patterns study, example implement by C/Linux.