タグ

OOPに関するyohshiyのブックマーク (4)

  • org-rabo.com

    yohshiy
    yohshiy 2016/07/28
    ほとんど初めて聞くけど、中身はよくあるもの。格言としてあると使いやすいかも。
  • RubyのリファクタリングでNull Objectを使ってコードをスッキリさせる方法 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

    前回、Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法という記事を書いて、いい反響をいただいたので第2弾を書いた。 Ben Orenstein氏の講演で話されていた前回のとはまた別のリファクタリング方法。元ネタはこちら。 github.com 【リファクタリング前のコード】 class JobSite attr_reader :contact def initialize(location, contact) @location = location @contact = contact end def contact_name if contact contact.name else 'no name' end end def contact_phone if contact contact.phone else 'no phone'

    RubyのリファクタリングでNull Objectを使ってコードをスッキリさせる方法 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記
    yohshiy
    yohshiy 2016/07/27
    なるほどとは思うけど、 Contact と NullContact との整合性の管理で問題がでやすそう。継承も使うともうちょい良くなる気がする。
  • Goはオブジェクト指向言語だろうか? | POSTD

    “オブジェクト指向”の意味を当に理解するには、この概念の始まりを振り返ることが必要です。最初のオブジェクト指向言語はSimulaという言語で、1960年代に登場しました。オブジェクト、クラス、継承とサブクラス、仮想メソッド、コルーチンやその他多くの概念を導入した言語です。おそらく最も重要なのは、データとロジックが完全に独立したものであるとする、当時では全く新しい考え方をもたらしたことでしょう。 Simula自体には馴染みがない方も多いかもしれませんが、Simulaからインスピレーションを得たとされるJavaC++、C#、Smalltalkといった言語は皆さんよくご存知でしょう。さらにそこからインスピレーションを得たものとしてObjective-CやPythonRubyJavaScriptScalaPHPPerlなど様々な言語があり、Simulaは現在使用されているポピュラーな

    Goはオブジェクト指向言語だろうか? | POSTD
    yohshiy
    yohshiy 2015/05/22
    継承よりもコンポジション(メンバーとして持って委譲)の方がいい実装になることが多い とは聞くが、C++ とかだと委譲のコード書くのがめんどい。Go では言語仕様で継承をなくし、コンポジションにしている。
  • オブジェクト指向の考え方~身近な例から考え方を理解する:新刊ピックアップ

    オブジェクト指向って何だろう? Java,C#,RubyPython,Objective-C,Perl…近年一度は目にしたプログラミング言語ではないでしょうか? これらには共通点があります。 それは「オブジェクト指向プログラミング言語」という点です。 オブジェクト指向の特徴をまとめると,カプセル化(オブジェクトの振る舞いの隠ぺい⁠)⁠,継承,多態性(ポリモフィズム)が挙げられます。 …こう聞くととても難しく感じる方もいるのではないでしょうか? オブジェクト指向って難しい? 確かにオブジェクト指向は来プログラミング技法として始まり浸透してきましたが,その考え方は自然なもので難しいものではありません。ここではごく身近な例でオブジェクト指向の考え方を見ていきましょう。 例えば会社組織を考えてみましょう。ここでは出版社を例にします。 出版社の組織が「管理部」「⁠営業部」「⁠編集部」で成り立って

    オブジェクト指向の考え方~身近な例から考え方を理解する:新刊ピックアップ
    yohshiy
    yohshiy 2014/04/25
    Perl をオブジェクト指向言語に入れるのは微妙。
  • 1