X



オブジェクト指向とDIを分かりやすく例えて教えてくれ 3
レス数が1000を超えています。これ以上書き込みはできません。
0001仕様書無しさん
垢版 |
2018/05/19(土) 21:44:19.89
■ オブジェクト指向・デザインパターン(有用)
 
 わかり易い例
 class Dog extends Animal
 class Cat extends Animal

■ DI(ゴミ)

 DIとは?・・・オブジェクト指向の依存関係を"ひとまとめに"定義する部分と、それを利用するために
        オブジェクトを直接newするのではなく、DIコンテナにnewしてもらうパターン

 https://web.archive.org/web/20170707082300/http://kakutani.com/trans/fowler/injection.html

 > Dependency Injection の形式
 > Dependency Injection の基本的な考え方は、独立したオブジェクトを
 > Assembler(組み立て係)として用意し、 MovieFinder インタフェースの実装を
 > MovieLister クラスのフィールドへ適切に設定させるというものだ。
 > 依存関係は図2のようになる。


前スレ

オブジェクト指向とは 分かりやすく教えてくれ
https://medaka.5ch.net/test/read.cgi/prog/1521869966/

オブジェクト指向を分かりやすく例えて教えてくれ 2
https://medaka.5ch.net/test/read.cgi/prog/1525660302/
0952仕様書無しさん
垢版 |
2018/07/06(金) 21:09:27.16
>>948
なーんもわかってないね
ミスしないようになんてのは精神論だよ
部下に怒鳴り散らすバカと同じ
ミスはどうやってもある程度の確率で紛れこむという事実から目をそらすな
テストをサボるな
テストにためにインターフェースを使え
0953仕様書無しさん
垢版 |
2018/07/06(金) 21:10:48.35
>>950
前にも言っただろ理解してくれ
ラッパーだから今程度で済んでいたがこれがユーティリティだったらとっくにゲームオーバーだったんだよ
九死に一生を得るって奴だぜ
0954仕様書無しさん
垢版 |
2018/07/06(金) 21:12:42.08
>>951
隠蔽してるから柔軟に変えられるんだ
これさ
オブジェクト指向の基本中の基本な
基礎をおろそかにしちゃいかんぞキミ
0955仕様書無しさん
垢版 |
2018/07/06(金) 21:19:32.54
ラッパーが役に立つのは自分がつかうときだけだな
他人が作ったラッパーほど鬱陶しいものはない
0956仕様書無しさん
垢版 |
2018/07/06(金) 21:22:53.77
うっとおしくないけど
仮にうっとおしくてもいいんだよ

バカなやつに好き放題、生ライブラリでコード汚染されるより遥かにマシなんだな
0957仕様書無しさん
垢版 |
2018/07/06(金) 21:25:39.88
別にうっとおしくないけど
仮にうっとおしくてもそれでいいんだよ

バカなやつに好き放題、生ライブラリでコード汚染されるより遥かにマシなんだな
0958仕様書無しさん
垢版 |
2018/07/06(金) 21:29:32.80
対して文意がかわってないのに内容が気に食わなくて2重投稿してしまうメンタル
他人のコードを汚染呼ばわりする態度

きさまリファクタやろうだな鬱陶しい
0959仕様書無しさん
垢版 |
2018/07/06(金) 21:39:33.77
二重投稿は電波が弱いところ入ったからミスっただけだ
汚染コードは事実だろ
外部ライブラリをあっちこっちにばら撒く行為を汚染と言わずになんというのか
0960仕様書無しさん
垢版 |
2018/07/06(金) 22:37:18.97
じゃあなにか
jre.jar以外にはかたっぱしからラッパーつくってんのか?

そこまでして何がうれしいんだ
0962仕様書無しさん
垢版 |
2018/07/06(金) 22:40:49.15
お前がいったことといったら
馬鹿なやつと汚染呼ばわりだけじゃねーか!!

通じてたまるか
0966仕様書無しさん
垢版 |
2018/07/07(土) 10:07:05.45
> このViewModelが仕様通りに動くかどうかテストしたい場合、どうしますか?
> わざわざその時間になるまで待って動かしますか?
>
> それはさすがにありえないので、
> 任意の値を返せるTimeProviderのモックアップを作ってテストします。

一方俺は、コンストラクタで任意の時間を指定できるようにした
コードは短くなり、インターフェースなど不要になった

class GreetingViewModel {

 var now: Int

 init(now: Int) {
  self.now = now
 }

 func greet() -> String {
  switch self.now() {
  case (let hour) where (6 <= hour && hour <= 11):
   return "Good Morning"
  case (let hour) where (12 <= hour && hour <= 17):
   return "Good Afernoon"
  case (let hour) where (18 <= hour && hour <= 23) || (0 <= hour && hour <= 5):
   return "Good Evening"
  default:
   return "Hello"
  }
 }
}
var viewModel = GreetingViewModel(now: Calendar.current.component(.hour, from: Date()))
print(viewModel.greet())
0967仕様書無しさん
垢版 |
2018/07/07(土) 10:08:35.45
>>965
やっぱりDIを勘違いしてるなぁ

 DIとは?・・・オブジェクト指向の依存関係を"ひとまとめに"定義する部分と、それを利用するために
        オブジェクトを直接newするのではなく、DIコンテナにnewしてもらうパターン

 https://web.archive.org/web/20170707082300/http://kakutani.com/trans/fowler/injection.html

 > Dependency Injection の形式
 > Dependency Injection の基本的な考え方は、独立したオブジェクトを
 > Assembler(組み立て係)として用意し、 MovieFinder インタフェースの実装を
 > MovieLister クラスのフィールドへ適切に設定させるというものだ。
 > 依存関係は図2のようになる。


この依存関係の図2をみなよ
0968仕様書無しさん
垢版 |
2018/07/07(土) 10:12:28.71
Dependency Injection の基本的な考え方は、独立したオブジェクトを
Assembler(組み立て係)として用意するってところなんだが、
そのことについて全く触れていない

そしてそのAssembler(組み立て係)が、MovieFinder インタフェースの実装を
MovieLister クラスのフィールドへ適切に設定させるというものなんだが、
それについても全く触れていない
0969仕様書無しさん
垢版 |
2018/07/07(土) 10:48:01.81
そう思うなら指摘してあげなよ
これがDIだって広まってる
0971仕様書無しさん
垢版 |
2018/07/07(土) 13:29:05.26
>>966
5時を引数にインスタンス化して1時間後にgreetしたらテストエラーになるだろ
ほらなDIを使わないからバグが量産されるんだよ
0972仕様書無しさん
垢版 |
2018/07/07(土) 13:41:57.60
>>971
それとDIになんの関係が?
DIって 独立したオブジェクトを
Assembler(組み立て係)として用意するって
ことわかってるよね?
0976仕様書無しさん
垢版 |
2018/07/07(土) 14:46:05.38
ネタにマジレスっていおうとしたら回答がさらにネタだった
0977仕様書無しさん
垢版 |
2018/07/07(土) 15:01:57.46
>>975
え?どうやって??
お前数学的証明を数学的に証明することなんてできるの?
そんなもんできないから数学的証明っていうんだけど?
0978仕様書無しさん
垢版 |
2018/07/07(土) 15:03:52.20
>>977
あーあ
できないんだ
じゃあ最初の証明も嘘なんだね
本当に正しいことなら数学的に証明できるはずだもの
0979仕様書無しさん
垢版 |
2018/07/07(土) 15:05:51.54
>>974
とりあえず公理系を書き出してみて

え?できない?それ数学的証明じゃないよ
0980仕様書無しさん
垢版 |
2018/07/07(土) 15:08:42.12
>>978
フェルマーの定理とか実際は長すぎて誰もついてけない
プログラムだってすぐバグるのにどっか間違ってないはずがない
数学だから正しいなんてことがあるか

経験的に実証されたものこそ真実
0981仕様書無しさん
垢版 |
2018/07/07(土) 15:19:59.41
>>978
お前馬鹿か。
数学的証明をわかってないじゃないか。
何かを数学的に証明することはできるが
数学的証明だけは数学的に証明できないと決まってる
0983仕様書無しさん
垢版 |
2018/07/07(土) 15:24:23.06
>>979
> とりあえず公理系を書き出してみて

公理系もしらんのか?
常識だからぐぐれ
0984仕様書無しさん
垢版 |
2018/07/07(土) 15:25:42.15
そもそも数学的証明って何か知ってるのかな?

例えばお前が山田だっていうのは
数学的に証明できる

自分が山田だと名乗ればいいのだから
これが数学的証明

基本だからこれが理解できない人は
話に参加しないでほしい
0985仕様書無しさん
垢版 |
2018/07/07(土) 15:26:37.64
また別の例ではジョブズは死んだという命題があるとする

さてここでジョブズとは誰か?
それは数学的証明によってスティーブ・ジョブズのことであることが
証明されている

ここまではいいな?
0986仕様書無しさん
垢版 |
2018/07/07(土) 15:27:18.42
ではスティーブ・ジョブズとは誰かだ?

これも元Apple CEOのスティーブ・ジョブズであることが
数学的帰納法によって証明できる
0987仕様書無しさん
垢版 |
2018/07/07(土) 15:28:25.84
だが、ここでAppleとはなにか?という
命題が出てくる。

AppleといってもいろんなAppleがあるだろう。
例えばApple自動車保険だ
0988仕様書無しさん
垢版 |
2018/07/07(土) 15:29:17.78
だがここでアップル保険でないことは
数学的証明で証明できる
0991仕様書無しさん
垢版 |
2018/07/07(土) 15:30:43.63
この世にはアップル自動車保険などない
Appleといえば、Appleしかないのだという
公理系に置いてAppleはAppleなのだ
0992仕様書無しさん
垢版 |
2018/07/07(土) 15:31:25.35
故にジョブズは死んだにおける
ジョブズはスティーブ・ジョブズのことであり
スティーブ・ジョブズは元AppleのCEOであることが証明できる
0993仕様書無しさん
垢版 |
2018/07/07(土) 15:31:37.17
ドカタが無理に数学的って言葉を使ってるの痛々しいなw
0994仕様書無しさん
垢版 |
2018/07/07(土) 15:32:11.06
ではジョブズは本当に死んだのか?
それは、写真を見ればわかる。
あれはどう見てもガンだ
0995仕様書無しさん
垢版 |
2018/07/07(土) 15:32:50.92
もうここまで言えばわかるだろう?
数学的証明ができない問題などない
0997仕様書無しさん
垢版 |
2018/07/07(土) 15:33:32.97
ジョブスは三丁目の山田んとこの倅だよ
はいこれでこの数学的マンの証明が嘘と証明されました
同じように考えて>>974も嘘とわかりますね
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 48日 17時間 52分 17秒
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況