タグ

OOPとなるほどに関するkiyo_hikoのブックマーク (3)

  • Javaクラスの継承で独立したstatic変数を使いたい - OKWAVE

    インスタンスの存在と無関係にクラス共通のフィールドを持たせて、 Ex1.str = "hoge"; Ex2.str = "moga"; のような書き方がしたい訳ではなく、 Ex1 ex1 = new Ex1(); ex1.str = "hoge"; のように常にインスタンスを介する使い方で、 同じクラスに属するどのインスタンスにも共通させたいが、 それぞれのクラスで宣言するのは面倒なので、 できればスーパークラスで処理を一元的に記述したいということなら、 直接フィールドにアクセスするやり方ではないが、 以下のようにスーパークラスにインスタンスメソッドのアクセッサを定義して、 Classクラスをキーにしてクラス変数のMapに格納しておく方法もある。 public abstract class AbstractStatic { private static java.util.HashMap<

    Javaクラスの継承で独立したstatic変数を使いたい - OKWAVE
    kiyo_hiko
    kiyo_hiko 2013/04/12
    static変数を持ったクラスを継承するためstaticなHashMapにClassをキーにして値を格納 これいい
  • いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な

    いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • staticおじさんに見るOOPの成功 - 技術ブログ読み日記

    「staticおじさん達に伝えたい、手続き指向とオブジェクト指向の再利用の考え方の違いについて」を読んで、ふと思った。 オブジェクト指向プログラミング(OOP)が登場したころによく言われたことがある。 End User Computing。 難しい処理はプログラマが作ってオブジェクトの中に隠ぺいする。アプリケーションを作るにはオブジェクトを組み合わせるだけでよい。したがって、エンドユーザは自分で望みのアプリケーションを簡単に作成できる、というものだ。 staticおじさんの話を読むと、それはある程度実現されていることがわかる。エンドユーザコンピューティングの理想では、クラスを作るのはプログラマであって、エンドユーザではない。 もちろん、staticおじさんはプログラマではない。SEというのはプログラマではなく、エンドユーザの代理人だから。SEという職種に各業種の業務知識が求められることから

    staticおじさんに見るOOPの成功 - 技術ブログ読み日記
    kiyo_hiko
    kiyo_hiko 2011/08/24
    役割がはっきり分かれていればstaticおじさんは無害というかちゃんと必要とされる人であって、問題なのはOOPを理解しないまま、クラス設計が必要とされるレイヤーにまで土足で入ってくる人がいる、というところなのかな
  • 1