code principles
layers
modules(abstraction of objects and operations that have different layers)
interfaces(hide the information of attributes and give caller a protection)
reuseble
典型错误:
1.在最顶层的代码操作最底层模块的属性。
2.反对使用子程序(函数),说影响性能。
ERROR。
interfaces is not just interfaces, it is a self-explanation of the programs.