タグ

javaに関するhush_puppyのブックマーク (4)

  • Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記

    はじめに らんらーらららんらんらーん♪(なうしか)っと ( ´ー`)フゥー...(゚Д゚)ハッ! 嘘です><ちょっと言ってみたかっただけです>< 今日読んだところ 67 ページ〜 85 ページ 前回はこちら Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記 情報隠蔽、カプセル化 API 以外の情報をモジュール外から見えなくすること 余計なテストとか書かなくていいから楽だよね。 パッケージプライベート 同じ jar の同じパッケージからのみ参照できる protected, public 完全公開 API として保守していかなければならないよ。 private とパッケージプライベートとは全然違うレベルよ インスタンスフィールド private にしる! public static final で、その参照先が不変クラスな場合に限り

    Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記
    hush_puppy
    hush_puppy 2010/02/20
    Javaは知らないが、コンポジションと多態性が混ざったように見えるのが混乱の元のような。スーパークラスのメソッドを呼び出すsuper.method()みたいなのがJavaにもあるなら、継承にしてそちらを使うのはどうか?
  • 新人研修 - yojikのlog

    新人研修の講義を、ヒトコマだけやりました。テーマは「オブジェクト指向について何か」。広すぎる。。 考えたあげく、3時間ほど、BlueJで遊ぶという形にしました。BlueJは一見UMLツールっぽい学習用開発環境です*1。実際BlueJは、クラスを定義したらすぐにインスタンス化して右クリックでメソッド呼び出し、さらにインスペクトしてオブジェクトの内容を確認する、という作業をダイナミックに行うことができるIDEです。 もちろんSmalltalkでは普通に出来ることですが、言語がJavaなのがオモロイところです。 他のオブジェクトに対してメッセージを投げるというメタファはJavaみたいな言語だと理解しづらいですが、こういう環境で補うことによってイメージすることができるようになります。クラスとインスタンスの違いという初心者が嵌まりやすいポイントもツールで視覚化することによって一発で説明できます。また

    新人研修 - yojikのlog
  • 互いに関連のないオブジェクトを1つのインターフェースにまとめて共通的にアクセス可能にするライブラリを作ってみた - 矢野勉のはてな日記

    Javaもともとやりたかったことは、 あるオブジェクト(インスタンス)がすでに手元にある そのオブジェクトのクラスは何らかの理由で継承不能 そのオブジェクトの一部メソッドをオーバーライドしたい そのオブジェクトにメソッドを1つ足したいという、JavaScriptならすぐにできちゃうことがしたかった。で、これって、オーバーライドしたいメソッドと、追加したいメソッドだけを持ったあるオブジェクトAを用意して、メソッド呼び出し時に該当メソッドの時だけAに委譲しちゃえばできるよね、と思った。他のメソッドはすべてもとのオブジェクトに委譲する。 で委譲コードを書いてみても、すんごいめんどくさい。たくさんのメソッドを定義して、ただ委譲するだけのコードをかかないといけない。でCGLibあたりにそういうのがあるだろうと思って見てみたのですが、どうもないみたい。なんかありがちな要望だと思ったんですが、もうちょっ

    hush_puppy
    hush_puppy 2009/06/15
    ダックタイピング
  • 僕がJavaを選ばなかった理由 - カタチづくり

    先日、大学時代の後輩と久しぶりに会った。彼はSeasarのコミッタにもなっているとても優秀なJavaプログラマだ。 その彼が、ビールを片手にこう尋ねた。 「どうしてC#にしたんですか?Javaを選ばなかった理由って何かあるんですか?」 僕は答えた。 「Javaにはstructがないから、かな。」 彼はずいぶん驚いた様子だった。 「えーっ?struct?・・・そんなに必要ですか、struct?」 彼は、いわゆるSIに近いところにいて、ウェブアプリなどの開発などにも携わっていて、という立場。一方僕は3次元CAD関係だから、彼とは全く違う分野でやっている。二人ともプログラマでありながら、お互いに知らない分野をやっているので、こういう情報交換はとても面白い。 「ほら、3次元の幾何演算をしようと思ったら、座標値(x,y,z)を格納したり演算したりしたいからさ、ベクトルクラスとか作るでしょ?doubl

    僕がJavaを選ばなかった理由 - カタチづくり
  • 1