では、クラスは、共有する情報とそれを扱う責務という観点から定義されるべきであるとし、クラス定義(とその利用者)の契約として設計する。