タグ

オブジェクト指向に関するwakaranyのブックマーク (2)

  • 多重継承まとめ - 西尾泰和のはてなダイアリー

    JavaはInterfaceという特殊な実装を持たないものだけ多重継承できる。実装を多重継承する仕組みはない。同じシグネチャのメソッドを持っている2つのInterfaceを継承した際にエラーにならないので衝突に気付けない。 Pythonはクラスを多重継承できる。同じ名前のメソッドを持っている2つのクラスを継承した際にどのメソッドが呼ばれるかはC3線形化を使って決定される。see: A Monotonic Superclass Linearization for Dylan RubyはModuleという「なにかを継承することはできなくてインスタンス化もできないもの」だけは多重継承できる。Moduleが別のものを継承できないためメソッドの解決は素朴な探索でOK(include A include BしたらBでの実装が優先) SmalltalkにはTraitという実装の多重継承ができるしくみがあ

    多重継承まとめ - 西尾泰和のはてなダイアリー
  • モックとスタブの違い スタイルによる違い - [lib]

    スタイルによる違い どちらのスタイルも有利な点と付随的に処理することがある。どちらのスタイルを使えばいいのかを理解するには、考慮することがかなりある。 フィクスチャのセットアップ 状態中心のテストでは、メッセージに対する応答に関わる全てのオブジェクトを生成しないといけない。上の例では2つのオブジェクトしかなかったが、実際のテストでは多数のサブオブジェクトが関係してくることが多い。通常はテストが実行される度に生成され解放される。 しかし相互作用中心のテストでは、メインのオブジェクトと差し当たり必要なモックだけを生成すればいい。これは幾つもの必要なオブジェクトを揃える際の、手のかかる作業を多少回避してくれる。 実際には、状態ドリブンのテストをする人々は必要なオブジェクトを揃える部分をできるだけ再利用するように気を付けている。再利用を行うための一番簡単な方法は、オブジェクトのセットアップコードを

    モックとスタブの違い スタイルによる違い - [lib]
  • 1