タグ

interfaceとjavaに関するkiyo_hikoのブックマーク (7)

  • 難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS

    java.io.Serializable …、ある程度Javaに触れて来た人は必ず見たことがあるインターフェイスだと思う。私も何度も見てきたし、必要に迫られて自分の作ったクラスにSerializableをつけたこともある。しかし、こいつは一体何なのか? 継承の便利さ 僕らがまだJava初心者だった頃。継承というメカニズムに助けられながら育って来た。簡単に言えば、HttpServletクラスを継承しさえすれば、自分の作ったクラスがサーブレットとして認識されるのだ。また、abstractメソッドなどという便利な機能もあり、継承にあたって実装しなければいけないメソッドは確実に指示され、言われた通りにそのメソッドを実装すれば良い。 StrutsのActionも然り。そう、多くの場合は「継承さえすれば、望む物がだいたい出来上がる」というのがJavaの世界だと思っていた。 だが、世の中そんなに甘くない

    難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS
    kiyo_hiko
    kiyo_hiko 2014/12/01
    派生クラスは基本クラスの責任を引き継ぐということ
  • Java8新機能 ラムダ式とデフォルトメソッドの導入理由 - Yuji Blog

    前々回に次回予告した内容ですw ラムダ式とデフォルトメソッドがどう関係あるのかということですが、まずはラムダ式が追加された経緯から読んでみます。 なぜJavaにラムダ式が追加されたのか Why are lambda expressions being added to Java? ラムダ式(とクロージャ)は最近の様々な言語で人気が出ています。これには様々な理由がありますが、Javaにとって最も差し迫った理由は、コレクションの処理を複数のスレッドで分散処理することです。 現在、ListやSetはCollectionから取得されたIteratorを使ってその要素が一つずつ順番に処理されるのが普通です。 もしそれぞれの要素を並列に処理しようとした場合、その責任を負うのはCollectionではなく、プログラマがそういったコードを書かなくてはいけません。 Java8では、様々な方法で要素を処理する

    Java8新機能 ラムダ式とデフォルトメソッドの導入理由 - Yuji Blog
    kiyo_hiko
    kiyo_hiko 2014/06/12
    "Interfaceにメソッドを追加した場合、それを実装している既存のクラスを変更しなくてはいけなくなります"
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 業務系のクラスでインタフェイスの実装クラス名に「インタフェイス名+Impl」って名前をつけるのはダサいよね。 - wildcatsの日記

    実装に特性があるからインタフェイスと実装を分離するわけで*1 インタフェイスに対して実装が1クラスになる場合にはインタフェイスと実装を分離する必要が無いとボクは思うね。 追記:特定のDIコンテナの話はこのエントリと無関係です。 追追記:他所での議論の延長でボクの考えをここに書いただけなので、特定のDIコンテナとか特定の設計手法とかは何も関係ない(というか意識もしていなかった)話ですけど。 上にも例外として書いたしコメントにも書いたんだけど、たとえばトランザクション自動制御とかでFacadeに対してAspectをかけたい場合の設計手法の一つとしてインタフェイスと実装を強制的に分離(インタフェイスと実装が1対1)してDynamic Proxyを使う設計手法を用いても構わないのではないでしょうか?最近のプロジェクトでDIコンテナは使ってないけどHibernateのセッションとかの管理をFacad

    業務系のクラスでインタフェイスの実装クラス名に「インタフェイス名+Impl」って名前をつけるのはダサいよね。 - wildcatsの日記
    kiyo_hiko
    kiyo_hiko 2012/04/11
    コメ欄より「interfaceImplではなくinterface_v101みたいな表記」なるほど / 追記先も見てみた。固有クラスでは多分アリだけど広く利用される予感ならI/FのJavadocにセマンティックス書く所かなあ
  • 『インターフェイス指向設計』読了

    最初にオススメポイントだけ書いておく。このには テスト容易性の確保複雑性保存の法則への対処へのヒントが詰まっている。 kakutani.com にアサマシセンターがあるのかと思ったけどなかったので自分ので貼っちゃうよ。献なのに自分のアサマシ貼ってるなんてふてぇやつだよ、オレ。 読み手に推奨される準備まずはじめに「書の読者対象」を挙げておくと、 書は、ある程度のプログラミング経験と、オブジェクト指向設計の基的な知識を持つ開発者を対象にしています。オブジェクト指向に深い造詣がある読者でも、インターフェイス指向のアプローチを学ぶことで、これまでにはなかった設計の概念を得ることができるようになるでしょう。また、インターフェイスを理解することは、SOA(サービス指向アーキテクチャ)の設計においても有用です。 と書かれている。 正直に告白すると自分はこれをなめていた。普通に UML もデザイ

    kiyo_hiko
    kiyo_hiko 2011/05/26
    読書中・・・「継承の問題について自覚的であった方がよい。継承がいかに扱いにくいかを普段感じていないと、サンプルのコードだけではいたずらに複雑になっただけに感じられてしまう」
  • 業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して

    Java: The Good Partsののタイトルに触発されて、逆にJava言語の使いにくい部分をいくつかピックアップしてみました。Java EEなどの業務系のアプリケーションプログラマーの視点で書いていますので、別の立場ではここで指摘している事項が必ずしもBad Partではないという指摘もあるかもしれませんし、他にもいろいろなポイントがあると思いますが、とりあえず、私の独断で思いついたものを10個説明したいと思います。 1.標準APIのチェック例外が扱いにくい Java言語のチェック例外は当にGood Partなのか? - 達人プログラマーを目指してでも取り上げましたが、Bad Partの第一番目として標準APIのチェック例外が扱いにくいという点を指摘させていただきたいと思います。チェック例外については、理屈上コンパイラーによって例外の処理をプログラマーに強制させることができるす

    業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して
    kiyo_hiko
    kiyo_hiko 2011/03/02
    Javaは強固な言語設計をバックに現在の地位を得た印象があるけど、強固に具象化されたものは互換性の維持と相入れにくいんだと思う。古い皮袋的印象がある。Groovyの記事読むと、新しい皮袋としては中々よさそう。
  • Higher order functions in Java with an annotation processor factory

  • 1