生産性向上のダックタイピング
オブジェクトに何ができるかはオブジェクトが決定する。
それらの言語ではオブジェクト(変数の値)に何ができるかはオブジェクトそのものが決定する。つまり、オブジェクトがあるインタフェースのすべてのメソッドを持っているならば、たとえそのクラスがそのインタフェースを宣言的に実装していなくとも、オブジェクトはそのインタフェースを実行時に実装しているとみなせる、ということである。
"If it walks like a duck and quacks like a duck, it must be a duck"(もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである)
対立する思想 クラス設計の思想
「あなた」というオブジェクトは「人間」というクラスのインスタンスであり、あなたが持つ特徴は人間クラスの定義によって定められている
この考え方では「人間が普遍的に持つ属性はどういうものか」という探求の方向性になるが、それは科学者が人間全体について研究するときには正しい方向性だが、あなた個人があなた個人の生産性を向上しようとする際にはオーバースペックである。
2017-04-29