昨天 [https://samtsai.org/2016/01/18/018-function-should-not-have-side-effect/]
談到函數(Function):「好的函數不該有副作用」。今天來談物件,以及生成物件的類別(Class)。
1. 介面設計成讓使用端不容易誤用。
2. 少用繼承(Inheritance
[https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)],
is-a 關係),善用合成(Composition [https://en.wikipedia.org/wiki/Object_composition]
, has-a 關係)。
3. 內部實作露出越少越好。
介面設計成讓使用端不容易誤用
以 Virtual Function 為例,底下 Animal 類別有一個