タグ

delegationに関するkiyo_hikoのブックマーク (5)

  • どういう場合にAUTOLOADを使用するか?...未解決 - end0tknr's kipple - web写経開発

    perlではAUTOLOADという仕組みがあります。 sub AUTOLOADが定義されていると、呼び出し対象のmethodがない場合にこれが呼ばれます。 #!perl #### in ActivePerl use strict; use warnings; my $animal = Animal->new(); $animal->hogehoge(); package Animal; sub new { my ($class) = @_; my $self = {}; return bless $self, $class; } sub AUTOLOAD { our $AUTOLOAD; warn "$AUTOLOAD can't find in ",__PACKAGE__,"\n"; } 1; このサンプルスクリプトを実行すると、次のように表示され、AUTOLOAD実行時の$AUTOLO

    どういう場合にAUTOLOADを使用するか?...未解決 - end0tknr's kipple - web写経開発
    kiyo_hiko
    kiyo_hiko 2012/04/26
    なるほど Decoratorで使うと良さげなのか。StateとかStrategyでも使えそうかしら PerlのOOPはよくわからない
  • Working Effectively With Legacy Code読書会 - 担当割当表/Moving Forward

    kiyo_hiko
    kiyo_hiko 2012/04/17
    巨大なクラスを小さくするために委譲を使うことについて
  • 委譲 - Wikipedia

    この項目では、プログラミングの手法について説明しています。 .NETの言語機能については「デリゲート (プログラミング)」をご覧ください。 権限の委譲については「権限委譲」をご覧ください。 他人に法律行為を委託することについては「委任」をご覧ください。 委譲を行うオブジェクトは委譲先オブジェクトへの参照を持ち、必要に応じてその参照を切り替える事で動作にバリエーションを持たせる事ができる。一種の実装遅延、プラグイン機構である。一例としては、オブジェクトの編集を行う時、編集の前処理、後処理を処理と独立させ委譲先に任せる事で、オブジェクト体の変更を最小限にとどめ局所性を向上させる、などがある。 操作の代替という観点では他に代理 (Proxy) と呼ばれる手法があるが、この場合は代理側のオブジェクトが実体への参照を保持する事で操作のフィルタを行う概念であり、実装の分離を目的とする委譲とは異なる

    kiyo_hiko
    kiyo_hiko 2012/04/17
    Proxyとの違いは、Proxyは操作のフィルターを行うこと、委譲は実装を分離させること
  • 書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | 継承による委譲の置き換え - Tbpgr Blog

    パンくず リファクタリング-プログラマーの体質改善テクニック 継承の取り扱い 継承による委譲の置き換え 内容 リファクタリング名 継承による委譲の置き換え 適用ケース要約 委譲を使っているが、インターフェイス全体のために多数の委譲メソッドを書いている 適用内容要約 委譲先のクラスをモジュールにして、委譲元のクラスでインクルードする 適用詳細 委譲先の全メソッドを利用しているような場合、継承への置き換えを検討します サンプル HTMLタグを表す機能と、Divタグを表す機能を実装します。 サンプルコード リファクタリング前 # encoding: Shift_JIS class HtmlTag attr_accessor:tag_name def initialize(tag_name) @tag_name=tag_name end def output_start_tag() return

    書籍 リファクタリング−プログラマーの体質改善 | 継承の取り扱い | 継承による委譲の置き換え - Tbpgr Blog
    kiyo_hiko
    kiyo_hiko 2012/04/17
    「委譲先の全メソッドを利用しているような場合、継承への置き換えを検討します」
  • 委譲と継承 - カタコト備忘録

    継承と委譲の使い分け。 GoFのデザパタでも簡単ではないと書いてある。 ファウラーの『リファクタリング』では ・委譲による継承の置き換え サブクラスがスーパークラスの一部のインターフェースだけを使っている。あるいはデータを継承したくない。 ・継承による委譲の置き換え 委譲を使っていて、すべてのインタフェースに対する単純な委譲をたくさん書いている。 とあるわけだが、もっと概念的である 程度正しい視点があるのでは? というのも、 みねこあ:憂を買ってみました ではじめて知った 実装継承 という言葉が非常にしっくりきたわけです。 これじゃないかと。 そこで、少しググってみた結果、 よく言われる、「継承よりコンポジション(has)して委譲」するべき場面として、 型ではなく実装の再利用を目的としている 時だと、言ってしまってもわりと正しそうだということがわかったわけなので、ここに宣言します。

    委譲と継承 - カタコト備忘録
    kiyo_hiko
    kiyo_hiko 2012/04/17
    「継承のリスク - 外部に対しては、情報隠蔽されていても、親子間では情報隠蔽がゆるいのです.実装継承を動機とした継承ではなおさらです.子供は親(の実装)に一般的に強く依存しがちです」
  • 1