プラダの鞄をおねだりするのが参照

プラダの鞄をおねだりするのが参照

プラダの鞄の続きです。
元ネタは、深読みのし過ぎだった訳ですが、ネタとして引き続き。

プラダの鞄をおねだりするときには、いくつかパターンがあるので、書き上げてみます。

■この箱にプラダの鞄を入れてパターン

<001>

 Prada *prada = NULL;
 Lewis.Onedari( &prada );

この prada ポインタは、アリスが用意する箱です。
ルイス君に「この箱にプラダの鞄を入れてね」とお願いするわけで、後で箱の中身を確認するのが、

 Prada *prada = NULL;
 Lewis.Onedari( &prada );
 if ( prada == null ) {
  // 激怒ッ!!!
 }

な訳ですね。

ここの部分、プラダの箱を直接チェックするのが「アリス」。
ルイス君が自己申告(プラダの鞄を入れたか、いれなかったか)をするパターンは次の書き方。

 Prada *prada = NULL;
 if ( Lewis.Onedari( &prada ) != true ) {
  // 激怒ッ!!!
 }

この違いは大きいですよね。

  • prada をチェックするのが、アリスの場合
  • prada をチェックするのが、ルイスの場合(自己申告)

という具合です。
前者の場合は、ルイスに責任はありません、というかアリスはルイスの振る舞いに疑いを持っています。
後者の場合は、ルイスの自己申告なので、実際は箱の中にプラダの鞄が入っているか分かりません。

ええ、そうなんです。
アリスが、ルイスに対してどれだけ疑いを持っているか(あるいは信じているか)にかかっています。

ちなみに、プログラマは疑い深いのでw、後者の場合でも

 Prada *prada = NULL;
 if ( Lewis.Onedari( &prada ) != true ) {
  // 激怒ッ!!!
 }
 if ( prada == null ) {
  // 激怒ッ!!!
 }

なことをやりますねw

■プラダの箱ごと頂戴ねパターン

先のアリスは、ご丁寧にプラダの箱に鞄を入れてくれることを期待しましたが、プラダの箱ごともらうパターンもあります。

 Prada *prada = Lewis.Onedari();

ルイスにおねだりをすると、プラダを箱ごとくれますね。
# 「箱」ってのはポインタなのか、メモリなのか、ってのがありますけど、この場合はメモリってことで。

これよく見ると Factory Pattern ですよね。Lewis がファクトリーで、Ondeari が Create メソッドって訳です。
Java の場合は、このファクトリパターンが多くって、C++の世界では、new演算子が多いです。ただし、この比較は正確ではなくて、

  • Factory.Create の場合は、ファクトリクラスにより Create を制御できる。
  • new 演算子の場合は、取得するクラスそのものだけになる。

ってことです。

具体的には、

 Prada *prada1 = Lewis.Onedari();
 Prada *prada2 = Nabokov.Onedari();

なところで、ルイスとナボコフにおねだりをすると、くれるのは同じプラダであっても、別のものです(あるいはプラダですらなかったりw)。

new 演算子を使う場合は、

 Prada *prada = new Prada();

になるので、おねだりをするというよりも、プラダ工場から直接購入って感じになります。

というわけで、

プラダの鞄の利用許可を与える件(委譲)のパターンは、また後日ということで。

カテゴリー: 開発, C++ パーマリンク

プラダの鞄をおねだりするのが参照 への2件のフィードバック

  1. 芳子 のコメント:

    (コピー商品)→www.bag33.com←
    ┏バッグ
    ┏時計
    ┏財布
    ┏小物
    貴金属など流行の商品。

    高級腕時計ROLEX 、OMEGA 、CARTIER 、 BVLGARI、

    ルイヴィトンコピー品販売,シャネルコピー品販売、グッチコピー品販売、エルメスコピー品販売、コーチコピー品販売、

    ◆ スタイルが多い、品質がよい、価格が低い、実物写真 100%品質保証!
    満足保障!
    経営方針: 品質を重視、納期も厳守、信用第一は当社の方針です.
    広大な客を歓迎して買います!
    ──bag33 bag33(*^-^*)
    店長:芳子
    URL:http://www.bag33.com
    URL:http://www.lv39.com

  2. masuda のコメント:

    いや、プラダの鞄を買う話ではないのです…が、画面キャプチャ用に残しますか。

コメントは停止中です。