[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

129users がブックマーク コメント 18

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

【オブジェクト指向プログラミング】誰のもの?で理解するインターフェース

129 users zenn.dev/sumiren

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント18

  • 注目コメント
  • 新着コメント
turanukimaru
違う。dog 側で定義するならそれは Listener とかだ。アクションを受け取れるものを宣言する物であって何者かの定義ではない。ああもうインタフェースは型みたいなものってクソ記事が蔓延してる人類にOOPは早すぎた。

その他
htsign
この例ならPubSubにして、Personはsubscribeするだけ、Dogはpublishするだけ、にした方が扱いやすくない?聞き手に依存した設計がまずおかしい。PCの充電の話を持ち出すならそれをコードにすればよかったんじゃないかしら。

その他
gabill
interfaceで差し替えが将来起こりうる機能って、ログとか通信とかIO周りが多そうだけど、それがビジネスロジック側に定義されたinterfaceに依存するのはなんかなぁ。

その他
en-en-ra
多分DogがPersonに依存するのではなくDogのPersonにSomePersonが依存するというDIPの話をしたいんだろうけど、この例だと有難味がわからないしインターフェースって何?レベルの解説とは分けた方がいいと思う。

その他
aox
サタンのものです

その他
kagehiens
Interfaceは要は「トリセツ」だろうと理解してる。

その他
ku__ra__ge
依存性逆転の原則。

その他
w1234567
この手の依存性の逆転を使うと副作用をともなうテストが楽に書けますよって説明がIT土方には一番しっくりくるんじゃないかな、めんどくさいからinterfaceやtraitじゃなくて関数オブジェクトで代用されることも多いけど

その他
pmint
犬プログラマーか。メリットと抱き合わせのデメリットがあるはずなので書かないと。設計は何かを難しくするかわりに、別の何かを容易くして、それでシステムの将来を決める作業。

その他
bellonieta
PersonがDog以外からも使われるとしたらSomePersonと同じ方に保存するのが正だと思うけどな。

その他
auto_chan
いまどきinterfaceを自作する機会は激減して、共通機能持った親クラスと派生の子クラスくらいしか意識しなくなった。例え話より標準ライブラリでどんな使われ方してるか実例を出してあげたほうがよさそう。

その他
PrivateIntMain
呼ぶ側が用意するもの、という理解でいいならいいんじゃない。大事なのは呼ばれる側の都合で用意しないことで。

その他
masa8aurum
おい、ブコメに書くんじゃなくてzennのコメントで作者に教えてやってよ

その他
gabill
gabill interfaceで差し替えが将来起こりうる機能って、ログとか通信とかIO周りが多そうだけど、それがビジネスロジック側に定義されたinterfaceに依存するのはなんかなぁ。

2022年11月13日 リンク

その他
umaemong
アレコレいうよりも、『メソッドの仮引数の型をインターフェースに』してみれば使いどころなんか一発で理解できると思うけど。

その他
htsign
htsign この例ならPubSubにして、Personはsubscribeするだけ、Dogはpublishするだけ、にした方が扱いやすくない?聞き手に依存した設計がまずおかしい。PCの充電の話を持ち出すならそれをコードにすればよかったんじゃないかしら。

2022年11月13日 リンク

その他
en-en-ra
en-en-ra 多分DogがPersonに依存するのではなくDogのPersonにSomePersonが依存するというDIPの話をしたいんだろうけど、この例だと有難味がわからないしインターフェースって何?レベルの解説とは分けた方がいいと思う。

2022年11月13日 リンク

その他
turanukimaru
turanukimaru 違う。dog 側で定義するならそれは Listener とかだ。アクションを受け取れるものを宣言する物であって何者かの定義ではない。ああもうインタフェースは型みたいなものってクソ記事が蔓延してる人類にOOPは早すぎた。

2022年11月13日 リンク

その他
nakag0711
普通は上位層下位層のほかにインタフェースとファクトリを3つ目の要素として独立させる必要がある。上位層コード内に下位層クラス名を書いてしまったらインタフェースの意味はほとんどなくなる

その他
fa11enprince
実装とインターフェースがフォルダ違うのか違和感がかなりある。 Javaだとimplってフォルダに押し込める。 最近Java書いてないけど。/ DIの話?だとしてもdogにインターフェースがあるのは変。

その他
xlc
まず抽象クラスと言ってほしいな。で、抽象クラスがなんの役に立つかは型に対してどれだけ厳密かで変わってくる。JavaScriptのような緩い言語なら抽象クラスの意味は「一部の実装を共有する」になる。Javaだとまた別だね

その他
kobito19
"Dog dog = new Dog(); と比べて何がいいの?" new Dog() してる時点で大差無いです

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「【オブジェクト指...」が注目されています。

気持ちをシェアしよう

ツイートする

【オブジェクト指向プログラミング】誰のもの?で理解するインターフェース

前置き 背景 オブジェクト指向プログラミングのインターフェースについて、以下のような例で学んだ方は... 前置き 背景 オブジェクト指向プログラミングのインターフェースについて、以下のような例で学んだ方は多いのではないでしょうか。 public interface Animal { void bark(); } public class Dog implements Animal { void bark() { System.out.println("ワン"); } } public static void main(String[] args){ Animal animal = new Dog(); // Animal型の変数にDogインスタンスを代入できる animal.bark(); } 上記は極端な例ですが、 「 Dog dog = new Dog(); と比べて何がいいの?」 という疑問に答えてくれる情報をなかなか見つけることができず、言語仕様と割り切って覚えてきた方は、実際に多いの

ブックマークしたユーザー

  • techtech05212024年05月27日 techtech0521
  • ondo_ozi2023年09月27日 ondo_ozi
  • ysirman2022年12月03日 ysirman
  • tabetenete2022年11月15日 tabetenete
  • himikko2022年11月15日 himikko
  • kazkun2022年11月14日 kazkun
  • aravow2022年11月14日 aravow
  • yamori04082022年11月14日 yamori0408
  • riri132022年11月14日 riri13
  • tororo_z2022年11月14日 tororo_z
  • oukasakura32022年11月14日 oukasakura3
  • amebacore2022年11月14日 amebacore
  • StrawberryGelato2022年11月14日 StrawberryGelato
  • Hiro_Matsuno2022年11月14日 Hiro_Matsuno
  • nots392022年11月14日 nots39
  • kusodb2022年11月14日 kusodb
  • yuki_naka182022年11月14日 yuki_naka18
  • xprxcsgwj2022年11月14日 xprxcsgwj
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /