タグ

OOPに関するgfxのブックマーク (6)

  • - Open-Closed Principle とデザインパターン

    1999/09/03 更新 石井 勝 さて,このセクションではデザインパターンを統一的に理解するために,「 Open-Closed Principle (OCP) 」 という設計ルールに基づいてパターンを眺めてみることにします.まず OCP の意味と解説を行い,その後デザインパターンを OCP の観点から見てみます.実は,デザインパターンのうちの多くは OCP を満たすために用意されたものと考えることができるのです.このセクションでは, OCP を理解し,数あるデザインパターンの中からどういう場合にどのパターンを使うのが一番効果的なのかを考えます. GoF のデザインパターンは,全部で 23 個ものパターンがあります.このデザインパターンは,多くの局面で繰り返し現れる設計を抽出したものですから,オブジェクト指向のエッセンスを集めたものだと言えるでしょう.オブジェクト指向には,カプセル化,継

    gfx
    gfx 2015/04/26
    "モジュールは拡張に対して開いて (Open) おり,修正に対して閉じて (Closed) いなければならない"
  • The cost of dynamic (virtual calls) vs. static (CRTP) dispatch in C++ - Eli Bendersky's website

    A couple of years ago I wrote an article about the Curiously Recurring Template Pattern in C++, focusing on the motivation behind it and how to implement it. That article mentioned runtime performance as the main reason for employing CRTP instead of the more traditional runtime polymorphism (dispatch via virtual functions). While some rationale for the cost of virtual calls was given, I didn't go

    gfx
    gfx 2013/12/06
  • CRTPと仮想関数呼び出しの比較

    江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul

    gfx
    gfx 2013/12/06
  • 私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記

    この記事では、私がオブジェクト指向のどこを愛しどこを素晴らしいと感じていて、そのうえでなぜオブジェクト指向を使うことを避けているのかを書き留めておきます。関数型言語使いの方で、「オブジェクト指向の何がいいのかわからない」「オブジェクト指向難しすぎ・複雑すぎ」とおっしゃる方にぜひ読んでいただきたいと思っています。また、「オブジェクト指向言語完璧に理解したわ」と思っている方にも読んでいただきたく思います。 なお、ここでのオブジェクト指向の定義は、「各言語でオブジェクト指向と呼ばれているものすべて」とします。JavaScalaJavaScriptやSmalltalkやRubyやCommon LispやOCamlがオブジェクト指向と呼んでいるものすべての総称です。もっとまともな定義が知りたい方は以下の記事がおすすめです。 オブジェクト指向の概念の発明者は誰ですか?(改訂版) - Smallta

    私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記
    gfx
    gfx 2013/11/30
  • Java共変戻り値メモ(Hishidama's Java covariant return type Memo)

    共変戻り値型(covariant return type) 共変ってあんまり聞かない言葉だけど。 メソッドをオーバーライドした際、戻り値の型が(JDK1.4までは一致している必要があったが、JDK1.5から)サブクラスに出来るようになった。 ちなみに、共変の反対は「反変(contravariant)」と言うらしい…が、それはJavaとは無関係^^; 具体例(インターフェース) interface Interface { public Number getValue(); } class Implement implements Interface { public Integer getValue() { //戻り値の型にサブクラスを指定 return 123; //自動ボクシング } } この例では、インターフェースでは戻り値をNumberで宣言しているが、その実装ではNumberのサブ

    gfx
    gfx 2012/06/17
  • オブジェクト指向とClass::Data::Inheritableは一緒に扱わないほうがいい。 - D-6 [相変わらず根無し]

    オブジェクト指向とClass::Data::Inheritableは一緒に扱わないほうがいい。 「オブジェクト指向なパラダイムでプログラムを書くとき」にClass::Data::Inheritableは排除すべきモジュールである。今回激しくそれを痛感しているので、だらだら書いてみたい。 まず、Perlはマルチパラダイムが可能な言語なので、Class::Data::Inheritable自体は否定されるべきものでもないし、あと必ず例外ケースはでてくるのでその際には躊躇なく使えばいいと思う。以下は最初の一文の通り、Perlでオブジェクト指向を使う場合はClass::Data::Inheritableは基的に使わず、あくまで例外ケースに留めるべきだ、という事を伝えたい。 まずその1: クラスアトリビュートはグローバル変数 クラスアトリビュートはグローバル変数です。異論は認めません。 Singl

    gfx
    gfx 2010/11/10
    要はグローバル変数使うなと
  • 1