前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
探検
オブジェクト指向システムの設計 173 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
2017/08/08(火) 17:52:14.38ID:4Kd2O+xB806デフォルトの名無しさん
2017/09/22(金) 14:39:52.97ID:b6yHr9// 例えばクイックソートなんか、明らかに名前を付けるに値する人類の英知でしょ
ちょっと自分では思いつかないかもしれないし
誰でも真っ先に思いつきそうなセレクションソートなんかと比べれば効果は劇的だし
動きも複雑っちゃ複雑なところもあるから、人に説明するのも大変でしょ
だからクイックソートは絶対名前を付けて共有したほうが良い
それと比べてどーなんかなーという
ちょっと自分では思いつかないかもしれないし
誰でも真っ先に思いつきそうなセレクションソートなんかと比べれば効果は劇的だし
動きも複雑っちゃ複雑なところもあるから、人に説明するのも大変でしょ
だからクイックソートは絶対名前を付けて共有したほうが良い
それと比べてどーなんかなーという
807デフォルトの名無しさん
2017/09/22(金) 15:05:58.23ID:kB3Gqsn3 じゃあバブルソートとかリニアサーチは名前つけるほど大層なもんでもないから、先頭からひとつずつ見ていくやつ、みたいな感じで表現すればいっか
808デフォルトの名無しさん
2017/09/22(金) 15:53:34.28ID:b6yHr9// 基本的には名前が知られて有名になっていく過程というものが有るんじゃないかと
その自然的プロセスをすっ飛ばして
良くありそうなアルアルに名前を付けます、俺の独断と偏見でな!
ってのがね
その自然的プロセスをすっ飛ばして
良くありそうなアルアルに名前を付けます、俺の独断と偏見でな!
ってのがね
809デフォルトの名無しさん
2017/09/22(金) 21:46:42.33ID:9s7VGfiV パターンに名前を付けることの価値がわからない人には
オブジェクト指向は向いてないんじゃね?
a, b, x, y, t1, t2みたいな命名しとけばいいと思うわ
オブジェクト指向は向いてないんじゃね?
a, b, x, y, t1, t2みたいな命名しとけばいいと思うわ
810デフォルトの名無しさん
2017/09/22(金) 22:19:39.92ID:sr7lvu8c >>801
俺自身は単品の説明は必要だと思っている。例えば、
・継承/インタフェース/委譲/関数ポインタ/匿名関数/クロージャはそれぞれこういう場合にこう使う
ところがデザインパターンはこれらの組み合わせであり、
・ここで継承、ここは委譲してこう組み合わせる、これが○○パターン(キリッ ←うぜー
バリエーションで無駄に名前を増やしすぎている。>>738のとおり、
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
なら(A)->(B)->(C)のアップグレードは自明であり、別々に名前をつける必要はない。
(だから混同されているし、また逆に、混同してても問題ないから混同されたまま、とも言える)
GoFからして水増し感ありまくり。半分くらいリストラ出来るんじゃないか?真面目に見たことはないが。
そういえばJavaScriptのIndexedDBはAPIがFactoryになっている。
まあこれに意味があるのかは疑問ではあるが。
https://developer.mozilla.org/ja/docs/Web/API/IDBFactory
あと、Proxyパターンは標準化済みだ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Proxy
いずれにしても頻出パターンは受動的にも学べる。
俺自身は単品の説明は必要だと思っている。例えば、
・継承/インタフェース/委譲/関数ポインタ/匿名関数/クロージャはそれぞれこういう場合にこう使う
ところがデザインパターンはこれらの組み合わせであり、
・ここで継承、ここは委譲してこう組み合わせる、これが○○パターン(キリッ ←うぜー
バリエーションで無駄に名前を増やしすぎている。>>738のとおり、
・(いわゆる)ファクトリメソッド(A)
・Factory Methodパターン(B)
・Abstract Factoryパターン(C)
なら(A)->(B)->(C)のアップグレードは自明であり、別々に名前をつける必要はない。
(だから混同されているし、また逆に、混同してても問題ないから混同されたまま、とも言える)
GoFからして水増し感ありまくり。半分くらいリストラ出来るんじゃないか?真面目に見たことはないが。
そういえばJavaScriptのIndexedDBはAPIがFactoryになっている。
まあこれに意味があるのかは疑問ではあるが。
https://developer.mozilla.org/ja/docs/Web/API/IDBFactory
あと、Proxyパターンは標準化済みだ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Proxy
いずれにしても頻出パターンは受動的にも学べる。
811デフォルトの名無しさん
2017/09/22(金) 22:20:48.95ID:Sr724cYm パァーン
812デフォルトの名無しさん
2017/09/22(金) 22:21:11.90ID:sr7lvu8c >>802
プログラミングは暗記だ!と思っている文系の馬鹿がすがるからだろ。
彼らにとっては、自分達が「上級者」だと証明するものは記憶したデザインパターンの個数しか無く、
そんなもの無意味だ、と言われて発狂してるだけ。
上記の遠り、俺は何度も「何故意味がないか」を具体的に説明しているが、
彼らは感情的にしか反論できてない。これがまた彼らの馬鹿っぷりを証明している。
本来は経験の差を知識で埋め、初心者→熟練者にジャンプアップさせることが目的だった。
これは表面的には達成できるんだけど、やっぱり中身は初心者のままで、考え方がずれてるんだよ。
しかしそのメッキしただけのまがい物が上級者ぶって語るからおかしなことになる。
ただまあ、デザパタ議論をしているだけでもマシな方だ。
JavaScriptはネット見てるだけでマジでカオスで、ろくなコードはないし、でたらめを主張する奴も普通にいる。
現場は壮絶な状態だというのは想像に難くない。
あいつら、jQueryが使えたら達人扱いっぽいのだが、jQueryってCでいうprintfだからな。
プログラミングは暗記だ!と思っている文系の馬鹿がすがるからだろ。
彼らにとっては、自分達が「上級者」だと証明するものは記憶したデザインパターンの個数しか無く、
そんなもの無意味だ、と言われて発狂してるだけ。
上記の遠り、俺は何度も「何故意味がないか」を具体的に説明しているが、
彼らは感情的にしか反論できてない。これがまた彼らの馬鹿っぷりを証明している。
本来は経験の差を知識で埋め、初心者→熟練者にジャンプアップさせることが目的だった。
これは表面的には達成できるんだけど、やっぱり中身は初心者のままで、考え方がずれてるんだよ。
しかしそのメッキしただけのまがい物が上級者ぶって語るからおかしなことになる。
ただまあ、デザパタ議論をしているだけでもマシな方だ。
JavaScriptはネット見てるだけでマジでカオスで、ろくなコードはないし、でたらめを主張する奴も普通にいる。
現場は壮絶な状態だというのは想像に難くない。
あいつら、jQueryが使えたら達人扱いっぽいのだが、jQueryってCでいうprintfだからな。
813デフォルトの名無しさん
2017/09/22(金) 23:15:39.67ID:sr7lvu8c814デフォルトの名無しさん
2017/09/23(土) 00:15:19.15ID:47xDJ4SG 愚にもつかない長文を一生懸命連投するメンタリティが悲しい
815デフォルトの名無しさん
2017/09/23(土) 00:25:56.13ID:47xDJ4SG 愚にもつかない長文を一生懸命連投するメンタリティが悲しい
816デフォルトの名無しさん
2017/09/23(土) 03:16:02.43ID:PZVogj5V >>814>>815
書き込めたかどうか確認することすらできない人はそう言った
書き込めたかどうか確認することすらできない人はそう言った
817デフォルトの名無しさん
2017/09/23(土) 03:56:40.05ID:3Bk8qYPA >>813
クイックソートのどこがそのものなんだ?
単に「速いソート」って名乗ってるだけだろ
クイックソートよりも速いアルゴリズムを採用して
「超速いソート」と名付けたらそのものズバリだと思うか?
超速いソートという名前からどんなアルゴリズムを想像するよ?
クイックソートのどこがそのものなんだ?
単に「速いソート」って名乗ってるだけだろ
クイックソートよりも速いアルゴリズムを採用して
「超速いソート」と名付けたらそのものズバリだと思うか?
超速いソートという名前からどんなアルゴリズムを想像するよ?
818デフォルトの名無しさん
2017/09/23(土) 05:07:06.10ID:Tcv0uwXr デザインしたことたいやつにはわからんよ
819デフォルトの名無しさん
2017/09/23(土) 05:07:31.96ID:Tcv0uwXr デザインしたことないやつにはわからんよ
820デフォルトの名無しさん
2017/09/23(土) 09:00:59.54ID:Z1NsXN0c >>817
ゆとり死ね
>>808
そういえば、実際に頻出だと名前が無いと困るので、別の名前が付いてる。
多態(ポリモーフィズム)=ストラテジーパターン
ラッパ=アダプターパターン(だと思う)
グローバル≒シングルトンパターン
包含/委譲=コンポジットパターン
○○プール(スレッドプール等)=フライウエイトパターン
構造体渡し=コマンドパターン(ただしこれはCでは日常的過ぎてパターンだとも認識されてない)
元々有った物については、イテレータ等同じ名前でないものはデザパタ側の名前がアホ過ぎてスルーされてる。
例外的にsingletonは使われているが、これはglobal=悪というJava教ではなぜかsingleton=善とされているから。
(適用範囲はほぼ同じ。実は駄目っぷりもほぼ同じなのだがスルーされてる。
坊主がウサギを鳥だと言い張って食ったようなもの。)
ぱっと見た感じはこんなもんか?
俺はデザパタの名前は普段使って無いから間違ってるかもしれんが。
ゆとり死ね
>>808
そういえば、実際に頻出だと名前が無いと困るので、別の名前が付いてる。
多態(ポリモーフィズム)=ストラテジーパターン
ラッパ=アダプターパターン(だと思う)
グローバル≒シングルトンパターン
包含/委譲=コンポジットパターン
○○プール(スレッドプール等)=フライウエイトパターン
構造体渡し=コマンドパターン(ただしこれはCでは日常的過ぎてパターンだとも認識されてない)
元々有った物については、イテレータ等同じ名前でないものはデザパタ側の名前がアホ過ぎてスルーされてる。
例外的にsingletonは使われているが、これはglobal=悪というJava教ではなぜかsingleton=善とされているから。
(適用範囲はほぼ同じ。実は駄目っぷりもほぼ同じなのだがスルーされてる。
坊主がウサギを鳥だと言い張って食ったようなもの。)
ぱっと見た感じはこんなもんか?
俺はデザパタの名前は普段使って無いから間違ってるかもしれんが。
821デフォルトの名無しさん
2017/09/23(土) 09:08:00.24ID:Z0Kw+Iw9 全然イコールじゃなくてわろた
822デフォルトの名無しさん
2017/09/23(土) 09:28:01.41ID:nAanI8EG 長文書く奴はバカの法則
823デフォルトの名無しさん
2017/09/23(土) 09:34:12.45ID:lJTicCY1 クラス、変数名全部頭にunkoってつけてやる
824デフォルトの名無しさん
2017/09/23(土) 09:45:25.48ID:Z1NsXN0c 3行しか読めない馬鹿はマジでプログラマ辞めて自殺してくれ。
絶対に上達しないし、糞コード量産されるだけで迷惑だ。
つか、普段から仕様書なり解説記事なり読んでないの丸分かりだし。
絶対に上達しないし、糞コード量産されるだけで迷惑だ。
つか、普段から仕様書なり解説記事なり読んでないの丸分かりだし。
825デフォルトの名無しさん
2017/09/23(土) 10:49:54.45ID:7PRDVMsP >>824
でもお前の文章が冗長なのも事実だ
でもお前の文章が冗長なのも事実だ
826デフォルトの名無しさん
2017/09/23(土) 10:57:31.46ID:zdCb7/9/827デフォルトの名無しさん
2017/09/23(土) 11:11:51.31ID:pHSma+nn 下らん長文書く奴はたいていわけわからん仕様書書く
828デフォルトの名無しさん
2017/09/23(土) 11:17:26.32ID:Jh9lXn4N 自分だけはバカじゃないという前提
829デフォルトの名無しさん
2017/09/23(土) 11:21:38.27ID:Z0Kw+Iw9 ゴミみたいな長文を書くウジ虫はコードも長い
平気な顔して10行20行の関数を書く
平気な顔して10行20行の関数を書く
830デフォルトの名無しさん
2017/09/23(土) 11:59:27.08ID:g84quUgG パターンとかなんでも名前ついてるじゃん
reduxとかpromiseとかgit flowとか
頻出だったら名前が必要でそうでなければ不要とか、主張の意図がわからんわw
名前があったら困るのかw
reduxとかpromiseとかgit flowとか
頻出だったら名前が必要でそうでなければ不要とか、主張の意図がわからんわw
名前があったら困るのかw
831デフォルトの名無しさん
2017/09/23(土) 12:07:41.55ID:Z1NsXN0c やはりゆとりは殺すべき。
根本的に勘違いしている。長文のほうが簡単なんだが。
根本的に勘違いしている。長文のほうが簡単なんだが。
832デフォルトの名無しさん
2017/09/23(土) 12:09:39.94ID:Z0Kw+Iw9 >>831
BaKa
BaKa
833デフォルトの名無しさん
2017/09/23(土) 12:10:13.25ID:Z1NsXN0c >>830
> reduxとかpromiseとかgit flowとか
> reduxとかpromiseとかgit flowとか
834デフォルトの名無しさん
2017/09/23(土) 12:15:27.16ID:qINfq2L1 >>831
長文はキチガイ
長文はキチガイ
835デフォルトの名無しさん
2017/09/23(土) 12:34:46.78ID:47xDJ4SG 長文自体が問題でもあるけどこの場合
「愚にも付かない」長文を「一生懸命連投」しちゃってるところが涙を誘う
小学生の九九暗唱連呼なら、しつこくても間違ってても、まだ微笑ましい
「愚にも付かない」長文を「一生懸命連投」しちゃってるところが涙を誘う
小学生の九九暗唱連呼なら、しつこくても間違ってても、まだ微笑ましい
836デフォルトの名無しさん
2017/09/23(土) 12:43:54.76ID:Z0Kw+Iw9 長文を書くからボロが出る
837デフォルトの名無しさん
2017/09/23(土) 12:56:54.86ID:Z1NsXN0c 既に言ったが俺は>>775の意図が理解出来ない
文才溢れるゆとりによる適切な解説を求む
文才溢れるゆとりによる適切な解説を求む
838デフォルトの名無しさん
2017/09/23(土) 14:04:19.43ID:0ADpWaV5839デフォルトの名無しさん
2017/09/23(土) 14:34:52.76ID:vbQ5UjHD 俺はデザパタ知らないし話についていけてないけど
それでも長文書くやつはバカだろ
長文書いただけで、そいつが言ってることが
間違いだってわかる=デザパタはクソ
それでも長文書くやつはバカだろ
長文書いただけで、そいつが言ってることが
間違いだってわかる=デザパタはクソ
840デフォルトの名無しさん
2017/09/23(土) 14:40:40.69ID:ghlB+mQW >>839
長文嫌いなの?
長文嫌いなの?
841デフォルトの名無しさん
2017/09/23(土) 14:44:31.43ID:OVoD4rc5 ディベートのテクニックの一つだよ
相手が長文で攻めてきたら
長文はキモいの一言で
で相手の理論を論破できる
相手が長文で攻めてきたら
長文はキモいの一言で
で相手の理論を論破できる
842デフォルトの名無しさん
2017/09/23(土) 14:48:58.43ID:Z0Kw+Iw9 要点を絞れない
簡潔に説明できない
長文はアホの得意技
簡潔に説明できない
長文はアホの得意技
843デフォルトの名無しさん
2017/09/23(土) 14:49:33.57ID:j6VCxv0o >だからデザパタ単体で学習した方が整理される言語を学んでいるときは
>パターンより文法にコードリーディングしてるときは
>実装のテクニックに目が行きがちだしね
なるほど、確かに何言ってるか分からんな
>パターンより文法にコードリーディングしてるときは
>実装のテクニックに目が行きがちだしね
なるほど、確かに何言ってるか分からんな
844デフォルトの名無しさん
2017/09/23(土) 14:54:26.06ID:OVoD4rc5 >>842
それもディベートでよく使う。
基本相手の発言は遮って自分の発言で上書きするのが
テレビでもよく使われるテクニックだが、
相手がなにか言ってしまったら、
要点を絞ってもう一回発言してくださいと
逆に相手に同じことを言わせるというテクニックもある。
このテクニックをうまく使うと、要点を絞らせるから
相手がいいたいことを減らすことができる。
それもディベートでよく使う。
基本相手の発言は遮って自分の発言で上書きするのが
テレビでもよく使われるテクニックだが、
相手がなにか言ってしまったら、
要点を絞ってもう一回発言してくださいと
逆に相手に同じことを言わせるというテクニックもある。
このテクニックをうまく使うと、要点を絞らせるから
相手がいいたいことを減らすことができる。
845デフォルトの名無しさん
2017/09/23(土) 15:20:32.55ID:PshCXG8Z ×デザパタ
○デザインパターン
○デザインパターン
846デフォルトの名無しさん
2017/09/23(土) 15:24:18.47ID:Z1NsXN0c >>839
俺は「デザパタはクソ」派なんだが
俺は「デザパタはクソ」派なんだが
847デフォルトの名無しさん
2017/09/23(土) 15:25:09.29ID:qWNtk5Ea 長文書く奴は脳が女の脳してるからプログラムには向いてないんだよな。
848デフォルトの名無しさん
2017/09/23(土) 15:32:14.50ID:Z1NsXN0c >>840
ゆとりにとって「長くても読みやすい文章 (>>826)」とはこういうのらしい。
http://news.denfaminicogamer.jp/projectbook/zelda
これは対談なのでこの形式で問題ないとはいえ、やはり冗長感ありで、スレでも指摘されてた。
基本的には頭が悪い(脳内短期記憶バッファが小さい)から、長文を一度に読み込めず、
小学校1,2年生相手のように一つ一つ対話的に説明してくれないと分からないらしい。
(富豪レスではなく貧民レスじゃなきゃダメ)
ついでにScalaの説明をする奴がいないので少し調べているところだが、
Scala以前については大体これであってるな。
http://rirakkumya.hatenablog.com/entry/2013/04/20/093044
>>842
最近、その手の詭弁テクニックを使う奴激増したよな?
印象も重要なリアルのディベートならさておき、
ここでやる意味は全くないから意味不明なのだが、なんでだか分かる?
ゆとりにとって「長くても読みやすい文章 (>>826)」とはこういうのらしい。
http://news.denfaminicogamer.jp/projectbook/zelda
これは対談なのでこの形式で問題ないとはいえ、やはり冗長感ありで、スレでも指摘されてた。
基本的には頭が悪い(脳内短期記憶バッファが小さい)から、長文を一度に読み込めず、
小学校1,2年生相手のように一つ一つ対話的に説明してくれないと分からないらしい。
(富豪レスではなく貧民レスじゃなきゃダメ)
ついでにScalaの説明をする奴がいないので少し調べているところだが、
Scala以前については大体これであってるな。
http://rirakkumya.hatenablog.com/entry/2013/04/20/093044
>>842
最近、その手の詭弁テクニックを使う奴激増したよな?
印象も重要なリアルのディベートならさておき、
ここでやる意味は全くないから意味不明なのだが、なんでだか分かる?
849デフォルトの名無しさん
2017/09/23(土) 15:38:26.88ID:PFKg/P6i >>820
その等式、マジで全部間違ってるよ
その等式、マジで全部間違ってるよ
850デフォルトの名無しさん
2017/09/23(土) 15:39:56.99ID:Z1NsXN0c >>842
> 要点を絞ってもう一回発言してくださいと
> 逆に相手に同じことを言わせるというテクニックもある。
ちなみにこれ思い出した。
> プレゼンで一つ前のスライドに戻すように頼む
> http://netgeek.biz/archives/88894
> 要点を絞ってもう一回発言してくださいと
> 逆に相手に同じことを言わせるというテクニックもある。
ちなみにこれ思い出した。
> プレゼンで一つ前のスライドに戻すように頼む
> http://netgeek.biz/archives/88894
851デフォルトの名無しさん
2017/09/23(土) 15:40:40.91ID:qWNtk5Ea 曖昧で冗長で不正確で理解しにくいの4拍子そろってるな。
852デフォルトの名無しさん
2017/09/23(土) 15:46:15.97ID:Z1NsXN0c853デフォルトの名無しさん
2017/09/23(土) 16:37:32.08ID:47xDJ4SG お前ら、この状況をよく観察しろよ
そして、スルーの使い時を学ぶんだ
そして、スルーの使い時を学ぶんだ
854デフォルトの名無しさん
2017/09/23(土) 16:42:14.21ID:zdCb7/9/ >>848
読み辛いよ
読み辛いよ
855デフォルトの名無しさん
2017/09/23(土) 16:57:16.97ID:Z1NsXN0c >>854
では君が思う「長くても読みやすい文章」の例示よろ
では君が思う「長くても読みやすい文章」の例示よろ
856デフォルトの名無しさん
2017/09/23(土) 16:59:16.70ID:zdCb7/9/ え、やだ
857デフォルトの名無しさん
2017/09/23(土) 17:00:49.62ID:lJTicCY1858デフォルトの名無しさん
2017/09/23(土) 17:58:20.11ID:Z1NsXN0c そういえば.NETはオブザーバーは標準化済みでユーザタイプeventで使えたわ。
https://msdn.microsoft.com/ja-jp/library/edzehd2t(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/edzehd2t(v=vs.110).aspx
859デフォルトの名無しさん
2017/09/23(土) 20:29:44.01ID:b6I3iAXW >>794
>ストラテジーは継承そのもの
ストラテジーは委譲だよ
継承そのものと言えるのは
テンプレートメソッドの方
デザパタの基本じゃないか
>ここら辺の話について来れないのなら
上から目線で言ってて
間違ってりゃ世話ないな!
>ストラテジーは継承そのもの
ストラテジーは委譲だよ
継承そのものと言えるのは
テンプレートメソッドの方
デザパタの基本じゃないか
>ここら辺の話について来れないのなら
上から目線で言ってて
間違ってりゃ世話ないな!
860デフォルトの名無しさん
2017/09/23(土) 22:48:39.47ID:Z1NsXN0c >>859
テンプレートメソッドパターンは本来は依存関係なしのコード共通化=C++のテンプレート、C#のジェネリック
のような気がするが、まあそれならそれでよし。
・多態(継承/委譲)=テンプレートメソッドパターン、ストラテジーパターン、コンポジットパターン
・ファクトリーの多態=アブストラクトファクトリーパターン
で、これらは現在、ほぼ全ての場合に左側の用語が使われ、デザパタ用語はリストラ済みの認識でいいか?
テンプレートメソッドパターンは本来は依存関係なしのコード共通化=C++のテンプレート、C#のジェネリック
のような気がするが、まあそれならそれでよし。
・多態(継承/委譲)=テンプレートメソッドパターン、ストラテジーパターン、コンポジットパターン
・ファクトリーの多態=アブストラクトファクトリーパターン
で、これらは現在、ほぼ全ての場合に左側の用語が使われ、デザパタ用語はリストラ済みの認識でいいか?
861デフォルトの名無しさん
2017/09/23(土) 22:50:48.00ID:0YQdpVUK Smalltalkの話すると荒れるのなんで?
862デフォルトの名無しさん
2017/09/23(土) 23:12:24.68ID:b6I3iAXW >>860
>テンプレートメソッドパターン
>C++のテンプレート、C#のジェネリック
デザインパターンのテンプレートと
ジェネリックのテンプレートは関係ない
ジェネリックは型を汎用的に扱う仕組み
デザパタの方は処理を継承で共通化する仕組み
>ほぼ全ての場合に左側の用語が使われ
その確信の根拠はどこから来てるの?
多態はデザパタとは別の概念で
イコールで使われるようなものじゃないだろ
コンポジットパターンのことを指して
多態って言われても意味分からん
>テンプレートメソッドパターン
>C++のテンプレート、C#のジェネリック
デザインパターンのテンプレートと
ジェネリックのテンプレートは関係ない
ジェネリックは型を汎用的に扱う仕組み
デザパタの方は処理を継承で共通化する仕組み
>ほぼ全ての場合に左側の用語が使われ
その確信の根拠はどこから来てるの?
多態はデザパタとは別の概念で
イコールで使われるようなものじゃないだろ
コンポジットパターンのことを指して
多態って言われても意味分からん
863デフォルトの名無しさん
2017/09/23(土) 23:14:18.84ID:b6I3iAXW864デフォルトの名無しさん
2017/09/23(土) 23:15:33.02ID:OVoD4rc5 >>861
SmalltalkはOSと言語が合体している独自の世界だから
Smalltalk実行環境(=OS=開発環境)のみがコンピュータ上で動いており
Smalltalk実行環境は電源を消すまで動作しているという前提の話をするから
言語だけの話にならない。
例えば開発した新しいプログラムをOS上で起動するというのは
Smalltalkの世界では、Smalltalk実行環境上で新しいクラスを作って呼び出すということで
プログラムを一旦終了してバグを修正して再起動するということは
Smalltalkの世界では、ではクラスを動的に変更するということになる。
このように一般的なOSでは、プログラムの作成や修正という当たり前にできることが
Smalltakでは「オブジェクトは遅延結合が必要で動的に変更できなければならない」という
根拠になってしまっているから、お前らの世界では遅延結合や動的が必須なのだろうけど、
そのマイナーな世界を押し付けるな。そんなものはなくてもできる。という感じで荒れる
SmalltalkはOSと言語が合体している独自の世界だから
Smalltalk実行環境(=OS=開発環境)のみがコンピュータ上で動いており
Smalltalk実行環境は電源を消すまで動作しているという前提の話をするから
言語だけの話にならない。
例えば開発した新しいプログラムをOS上で起動するというのは
Smalltalkの世界では、Smalltalk実行環境上で新しいクラスを作って呼び出すということで
プログラムを一旦終了してバグを修正して再起動するということは
Smalltalkの世界では、ではクラスを動的に変更するということになる。
このように一般的なOSでは、プログラムの作成や修正という当たり前にできることが
Smalltakでは「オブジェクトは遅延結合が必要で動的に変更できなければならない」という
根拠になってしまっているから、お前らの世界では遅延結合や動的が必須なのだろうけど、
そのマイナーな世界を押し付けるな。そんなものはなくてもできる。という感じで荒れる
865デフォルトの名無しさん
2017/09/23(土) 23:33:54.47ID:PFKg/P6i >>861
良いSmalltalkerと悪いSmalltalkerがいて
このスレには後者が住んでるから
ケント・ベック、ウォード・カニンガム、エリック・エヴァンス、ラルフ・ジョンソンらは
Smalltalkを垣根を越えてこの世界に影響を与えた人達
日本だと羽生田さんとか
悪いSmalltalkerはSmalltalkの世界観に閉じこもって現実を見ない
技術力が無いから他に生かせないというのもある
良いSmalltalkerと悪いSmalltalkerがいて
このスレには後者が住んでるから
ケント・ベック、ウォード・カニンガム、エリック・エヴァンス、ラルフ・ジョンソンらは
Smalltalkを垣根を越えてこの世界に影響を与えた人達
日本だと羽生田さんとか
悪いSmalltalkerはSmalltalkの世界観に閉じこもって現実を見ない
技術力が無いから他に生かせないというのもある
866デフォルトの名無しさん
2017/09/23(土) 23:42:38.26ID:Z1NsXN0c >>862
C++のテンプレートなら、
継承関係ないクラスの同じ名前のメソッドを呼び出し側は共通に使えるんだよ。
静的ダックタイピングと言えば分かるか?
Javaはこれが出来ないから継承ありきになるだけであって。
> >ほぼ全ての場合に左側の用語が使われ
> その確信の根拠はどこから来てるの?
だって見たことないし。
ネットでも継承/委譲議論は見かけるが、わざわざデザパタ用語使ってる奴はいないだろ。
余計に分かりにくくなるだけだし。
元々>>703の質問がこれだが、君はリアルで使っているのか?
> 多態はデザパタとは別の概念で
> イコールで使われるようなものじゃないだろ
多態自体が本来はパターン(多態パターン)で、これはオブザーバー/ファクトリー/フライウエイト等と並べられるだろ。
継承/委譲は多態の実装方法であって、それらの組み合わせで○○パターンとか無駄に水増しするからデザパタはダメなんだよ。
C++のテンプレートなら、
継承関係ないクラスの同じ名前のメソッドを呼び出し側は共通に使えるんだよ。
静的ダックタイピングと言えば分かるか?
Javaはこれが出来ないから継承ありきになるだけであって。
> >ほぼ全ての場合に左側の用語が使われ
> その確信の根拠はどこから来てるの?
だって見たことないし。
ネットでも継承/委譲議論は見かけるが、わざわざデザパタ用語使ってる奴はいないだろ。
余計に分かりにくくなるだけだし。
元々>>703の質問がこれだが、君はリアルで使っているのか?
> 多態はデザパタとは別の概念で
> イコールで使われるようなものじゃないだろ
多態自体が本来はパターン(多態パターン)で、これはオブザーバー/ファクトリー/フライウエイト等と並べられるだろ。
継承/委譲は多態の実装方法であって、それらの組み合わせで○○パターンとか無駄に水増しするからデザパタはダメなんだよ。
867デフォルトの名無しさん
2017/09/23(土) 23:49:02.66ID:Z0Kw+Iw9 やはり長文はアホ
また証明されてしまったね
また証明されてしまったね
868デフォルトの名無しさん
2017/09/23(土) 23:57:20.81ID:zdCb7/9/ そりゃまとめる力がないからな
869デフォルトの名無しさん
2017/09/24(日) 00:10:40.58ID:rk9buIU7 まず自分の考えが正しいというのが第一にあって、そこに無理矢理デザパタの思想を当てはめようとするから、
なに言ってんだこいつ、みたいになる
誰だよお前、お前が考えてることなんて知らねえよ、お前の考え基準で説明されてもわかんねえよハゲっていう
なに言ってんだこいつ、みたいになる
誰だよお前、お前が考えてることなんて知らねえよ、お前の考え基準で説明されてもわかんねえよハゲっていう
870デフォルトの名無しさん
2017/09/24(日) 00:34:29.86ID:d6JjhuPW ハゲじゃねーよ!
871デフォルトの名無しさん
2017/09/24(日) 00:35:18.57ID:UM3Vm/oL 薄いだけだもんな
872デフォルトの名無しさん
2017/09/24(日) 01:09:02.05ID:ZoycLPfe873デフォルトの名無しさん
2017/09/24(日) 01:11:16.00ID:3BjqQEbI まあまあ落ち着けよ、ハゲ同士で喧嘩すんなって
874デフォルトの名無しさん
2017/09/24(日) 01:34:59.31ID:R8lp94JX >>872
それは既に書いただろ。日常的過ぎて言及されないが、あえて言うならそうだと。
Cでは(というか他言語も一般的にそうだが)引数が増え過ぎたら構造体にして見た目単純化するんだよ。
こんなのパターン(キリッされても困るわ。
それに文句言うのなら、ネット上でデザパタ用語使って制御構造議論してる奴探してこいよ。
俺は見たことないぞマジで。
ただまあ、平行線なら平行線でいいよ。
君は君の意思でデザパタを学び続ければいいだけだし、俺が同意する必要すらない。
それは既に書いただろ。日常的過ぎて言及されないが、あえて言うならそうだと。
Cでは(というか他言語も一般的にそうだが)引数が増え過ぎたら構造体にして見た目単純化するんだよ。
こんなのパターン(キリッされても困るわ。
それに文句言うのなら、ネット上でデザパタ用語使って制御構造議論してる奴探してこいよ。
俺は見たことないぞマジで。
ただまあ、平行線なら平行線でいいよ。
君は君の意思でデザパタを学び続ければいいだけだし、俺が同意する必要すらない。
875デフォルトの名無しさん
2017/09/24(日) 01:51:31.62ID:d6JjhuPW876デフォルトの名無しさん
2017/09/24(日) 01:53:02.97ID:d6JjhuPW 例えば、
if = 条件分岐制御
for = ループ処理
みたいなことだよ。
if = 条件分岐制御
for = ループ処理
みたいなことだよ。
877デフォルトの名無しさん
2017/09/24(日) 01:53:22.66ID:uS0xIQvj878デフォルトの名無しさん
2017/09/24(日) 01:54:33.21ID:uS0xIQvj >>875
え? え?
え? え?
879デフォルトの名無しさん
2017/09/24(日) 01:57:08.64ID:d6JjhuPW880デフォルトの名無しさん
2017/09/24(日) 02:02:05.28ID:d6JjhuPW 例えば
グローバル=シングルトン
というのは
まず>>820の盛大な勘違いを訂正しておくが、世の中で悪と言われているのは
グローバル「変数」であってグローバル「関数」やグローバル「オブジェクト」ではないということ
グローバル変数のどこがダメかというと、どこからでも
その変数に好きな値を入れてしまえるということ
(変数の型にあったものしか入れられないという制約は有るものの)
グローバル関数はそもそも値を入れるものではないし、
グローバルオブジェクトはpublic変数なんてものは当然禁止で
関数経由で代入するので自由な値は入れられない。
そういった制限ができない時点でグローバル変数では
シングルトンの代替にはならないが、
小規模プログラムで、気をつけて使えばシングルトンの
代わりにならないことはないという点で
かろうじてグローバルでも実装可能
グローバル=シングルトン
というのは
まず>>820の盛大な勘違いを訂正しておくが、世の中で悪と言われているのは
グローバル「変数」であってグローバル「関数」やグローバル「オブジェクト」ではないということ
グローバル変数のどこがダメかというと、どこからでも
その変数に好きな値を入れてしまえるということ
(変数の型にあったものしか入れられないという制約は有るものの)
グローバル関数はそもそも値を入れるものではないし、
グローバルオブジェクトはpublic変数なんてものは当然禁止で
関数経由で代入するので自由な値は入れられない。
そういった制限ができない時点でグローバル変数では
シングルトンの代替にはならないが、
小規模プログラムで、気をつけて使えばシングルトンの
代わりにならないことはないという点で
かろうじてグローバルでも実装可能
881デフォルトの名無しさん
2017/09/24(日) 02:07:55.77ID:d6JjhuPW > 構造体渡し=コマンドパターン(ただしこれはCでは日常的過ぎてパターンだとも認識されてない)
「構造体渡し」というのが(実装レベルの)パターンの名前だよ
構造体があるのは一部の言語で、通常はクラスのインスタンス(=オブジェクト)渡しということになる。
要するに引き数をオブジェクトにするということ。
つまり引き数が多いから、コマンドパターンを使いましょう。
=引き数をオブジェクトにして実装するということですね!
ということで、パターンがやりたいことで
実装方法がオブジェクトだったり構造体だったりするということ
構造体渡しというのはあくまでオブジェクトがないC言語での実装方法であって
反対に構造体がない言語ではオブジェクト渡しとなる。
その2つを抽象化したものがコマンドパターン。
例えば言語が決定してない時点で構造体渡しを使いましょうなんて言えないじゃないか
構造街があるかないかわからんのだから
だから設計時点での言い方として「構造体渡しという実装方法の名前」ではなく
「コマンドパターンという名前」を用いる
「構造体渡し」というのが(実装レベルの)パターンの名前だよ
構造体があるのは一部の言語で、通常はクラスのインスタンス(=オブジェクト)渡しということになる。
要するに引き数をオブジェクトにするということ。
つまり引き数が多いから、コマンドパターンを使いましょう。
=引き数をオブジェクトにして実装するということですね!
ということで、パターンがやりたいことで
実装方法がオブジェクトだったり構造体だったりするということ
構造体渡しというのはあくまでオブジェクトがないC言語での実装方法であって
反対に構造体がない言語ではオブジェクト渡しとなる。
その2つを抽象化したものがコマンドパターン。
例えば言語が決定してない時点で構造体渡しを使いましょうなんて言えないじゃないか
構造街があるかないかわからんのだから
だから設計時点での言い方として「構造体渡しという実装方法の名前」ではなく
「コマンドパターンという名前」を用いる
882デフォルトの名無しさん
2017/09/24(日) 02:15:14.31ID:d6JjhuPW > ラッパ=アダプターパターン(だと思う)
これは>>820の勘違いがよく分かる例だな
アダプタパターンというのは、
電源アダプタと同じく、どんな電気機器でも
アダプタを使えばコンセントにさせるということで、
互換性がないものを、ある共通のインターフェースに
適合できるように変換するもののことを指す。
だからラッパという手段を用いることで
アダプタパターンを実装できるが、
だがラッパというのは別にある共通のインターフェースに
適合させる必要はない
あるライブラリがC言語用のAPIしか備えておらず
オブジェクト指向的には使いづらいから、APIのラッパを
作ってオブジェクト指向風に使えるようにするなんてのもある。
これはラッパは必ずしもアダプタパターンが要求している、
ある共通のインターフェースに適合させるなんてことはしていないが、
ラッパを使ってもできる場合があるということでやっぱり実装方法の話題なのさ
これは>>820の勘違いがよく分かる例だな
アダプタパターンというのは、
電源アダプタと同じく、どんな電気機器でも
アダプタを使えばコンセントにさせるということで、
互換性がないものを、ある共通のインターフェースに
適合できるように変換するもののことを指す。
だからラッパという手段を用いることで
アダプタパターンを実装できるが、
だがラッパというのは別にある共通のインターフェースに
適合させる必要はない
あるライブラリがC言語用のAPIしか備えておらず
オブジェクト指向的には使いづらいから、APIのラッパを
作ってオブジェクト指向風に使えるようにするなんてのもある。
これはラッパは必ずしもアダプタパターンが要求している、
ある共通のインターフェースに適合させるなんてことはしていないが、
ラッパを使ってもできる場合があるということでやっぱり実装方法の話題なのさ
883デフォルトの名無しさん
2017/09/24(日) 02:25:31.82ID:ZoycLPfe >>881
>つまり引き数が多いから、コマンドパターンを使いましょう
眠いから要点だけ言うが
引数を圧縮したいだけなら配列渡しでもいい場合があるよな
逆にコマンドパターンは引数がひとつでも使う場合もある
コマンドパターンはもっと汎用的な抽象化技法で
要求をオブジェクトにすることで
アンドゥの挙動が実現できたりする
>つまり引き数が多いから、コマンドパターンを使いましょう
眠いから要点だけ言うが
引数を圧縮したいだけなら配列渡しでもいい場合があるよな
逆にコマンドパターンは引数がひとつでも使う場合もある
コマンドパターンはもっと汎用的な抽象化技法で
要求をオブジェクトにすることで
アンドゥの挙動が実現できたりする
884デフォルトの名無しさん
2017/09/24(日) 02:28:03.87ID:uS0xIQvj885デフォルトの名無しさん
2017/09/24(日) 02:32:19.28ID:d6JjhuPW はい。ググって正しいことを証明します。
http://www.techscore.com/tech/DesignPattern/Command.html/
第22章ではCommandパターンを学びます。あるオブジェクトに対して要求を送るということは、
そのオブジェクトのメソッドを呼び出すことと同じです。
そして、メソッドにどのような引数を渡すか、ということによって要求の内容は表現されます。
さまざまな要求を送ろうとすると、引数の数や種類を増やさなければなりませんが、
それには限界があります。そこで要求自体をオブジェクトにしてしまい、
そのオブジェクトを引数に渡すようにします。それがCommandパターンです。
http://www.techscore.com/tech/DesignPattern/Command.html/
第22章ではCommandパターンを学びます。あるオブジェクトに対して要求を送るということは、
そのオブジェクトのメソッドを呼び出すことと同じです。
そして、メソッドにどのような引数を渡すか、ということによって要求の内容は表現されます。
さまざまな要求を送ろうとすると、引数の数や種類を増やさなければなりませんが、
それには限界があります。そこで要求自体をオブジェクトにしてしまい、
そのオブジェクトを引数に渡すようにします。それがCommandパターンです。
886デフォルトの名無しさん
2017/09/24(日) 02:51:01.08ID:uS0xIQvj >>885
その説明文自体が悪いし書いてるコードも理解してないだろ
これ見てざっくり理解して
http://python-3-patterns-idioms-test.readthedocs.io/en/latest/FunctionObjects.html#command-choosing-the-operation-at-runtime
それ理解したらundoが入ってる例を探すといい
タスクをキューに入れる場合なんかにもよく使われてる
その説明文自体が悪いし書いてるコードも理解してないだろ
これ見てざっくり理解して
http://python-3-patterns-idioms-test.readthedocs.io/en/latest/FunctionObjects.html#command-choosing-the-operation-at-runtime
それ理解したらundoが入ってる例を探すといい
タスクをキューに入れる場合なんかにもよく使われてる
887デフォルトの名無しさん
2017/09/24(日) 05:14:10.07ID:5g9dg2+V >>861
使えない人がいるから
使えない人がいるから
888デフォルトの名無しさん
2017/09/24(日) 07:10:11.71ID:8QRYtBFv デザパタは現場で使ってない
889デフォルトの名無しさん
2017/09/24(日) 08:08:05.85ID:Oc3oIVgi 相変わらず低レベルなやつほど長文で連投するねこのスレ
890デフォルトの名無しさん
2017/09/24(日) 08:19:44.51ID:8QRYtBFv ホントだよ
現場ではデザパタなんて使ってないっていうのに
現場ではデザパタなんて使ってないっていうのに
891デフォルトの名無しさん
2017/09/24(日) 09:46:34.11ID:asf3lmyK >>889
自分が何を知っていて何を知っていないかにすら無自覚だから
知らないところを無意識に嘘や想像や見栄で補って膨らませて
フワフワの長文合戦になる
十分な知識かマナーがあれば、どちらかがあれば、こうはならない
自分が何を知っていて何を知っていないかにすら無自覚だから
知らないところを無意識に嘘や想像や見栄で補って膨らませて
フワフワの長文合戦になる
十分な知識かマナーがあれば、どちらかがあれば、こうはならない
892デフォルトの名無しさん
2017/09/24(日) 09:52:22.19ID:L7/sMAP/ でも自分で思ってるコマンドパターンが明らかに間違ってて
もう恥ずかしくて出てこれないでしょ
構造体渡し=コマンドパターン とか初めて見たわ
もう恥ずかしくて出てこれないでしょ
構造体渡し=コマンドパターン とか初めて見たわ
893デフォルトの名無しさん
2017/09/24(日) 10:06:43.49ID:R8lp94JX894デフォルトの名無しさん
2017/09/24(日) 10:10:41.01ID:R8lp94JX >>886、訂正
・関数ポインタ/関数オブジェクト/callback=コマンドパターン
> Design Patterns says that “Commands are an object-oriented replacement for callbacks.”
・関数ポインタ/関数オブジェクト/callback=コマンドパターン
> Design Patterns says that “Commands are an object-oriented replacement for callbacks.”
895デフォルトの名無しさん
2017/09/24(日) 10:22:53.31ID:yvoGeauV >>890
相撲の決まり手みたいなもので
当人は意識せずに作ってて後からこれは、て分類しているようなものだから
先にパターンありきではないし、パターンを理解していなければ作れないということはない
ただ設計時・作成時に、ここはこのパターンを使う、って明示できる場合には
そのパターン名をモジュールの名前につけることで
設計書の記述を省略できたり、後からコードを見た時に理解しやすくなるという利点がある
相撲の決まり手みたいなもので
当人は意識せずに作ってて後からこれは、て分類しているようなものだから
先にパターンありきではないし、パターンを理解していなければ作れないということはない
ただ設計時・作成時に、ここはこのパターンを使う、って明示できる場合には
そのパターン名をモジュールの名前につけることで
設計書の記述を省略できたり、後からコードを見た時に理解しやすくなるという利点がある
896デフォルトの名無しさん
2017/09/24(日) 10:28:00.99ID:sQZN3/qk897デフォルトの名無しさん
2017/09/24(日) 10:39:05.39ID:R8lp94JX >>895
前半は同意だが、、、
> そのパターン名をモジュールの名前につけることで
> 設計書の記述を省略できたり、後からコードを見た時に理解しやすくなるという利点がある
ねーよ。StrategyMyModule とか恥ずかしすぎるし余計分かりにくいわ。
前半は同意だが、、、
> そのパターン名をモジュールの名前につけることで
> 設計書の記述を省略できたり、後からコードを見た時に理解しやすくなるという利点がある
ねーよ。StrategyMyModule とか恥ずかしすぎるし余計分かりにくいわ。
898デフォルトの名無しさん
2017/09/24(日) 10:44:17.50ID:dIaNhcU3899デフォルトの名無しさん
2017/09/24(日) 10:45:29.83ID:dIaNhcU3 >>894
> ・関数ポインタ/関数オブジェクト/callback=コマンドパターン
だ、あらそれ、コマンドパターンというパターンを
関数ポインタ/関数オブジェクト/callbackで
実装しますって話だよね?
> ・関数ポインタ/関数オブジェクト/callback=コマンドパターン
だ、あらそれ、コマンドパターンというパターンを
関数ポインタ/関数オブジェクト/callbackで
実装しますって話だよね?
900デフォルトの名無しさん
2017/09/24(日) 10:48:01.59ID:sQZN3/qk901デフォルトの名無しさん
2017/09/24(日) 10:48:10.22ID:dIaNhcU3 undoを実装するにはどうしたら良いでしょうか?
正解 コマンドパターンを使います。
undoを実装するにはどうしたら良いでしょうか?
誤答 関数ポインタを使います。
え? 関数ポインタ?
関数オブジェクトも使います。
え? 関数オブジェクト?
コールバックも使います。
え?コールバック?
それらを使って実装します。
だからそれらを使ってどのように実装しますかって話なんですが? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
正解 コマンドパターンを使います。
undoを実装するにはどうしたら良いでしょうか?
誤答 関数ポインタを使います。
え? 関数ポインタ?
関数オブジェクトも使います。
え? 関数オブジェクト?
コールバックも使います。
え?コールバック?
それらを使って実装します。
だからそれらを使ってどのように実装しますかって話なんですが? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
902デフォルトの名無しさん
2017/09/24(日) 10:49:08.03ID:rk9buIU7 >>897
StrategyMyModuleはないわww
StrategyMyModuleはないわww
903デフォルトの名無しさん
2017/09/24(日) 11:09:57.56ID:sQZN3/qk ID:R8lp94JX
ラッパでも吹いてろゴミゆとりwwwwwwwwwwwwwwwww
ラッパでも吹いてろゴミゆとりwwwwwwwwwwwwwwwww
904デフォルトの名無しさん
2017/09/24(日) 11:15:24.97ID:R8lp94JX905デフォルトの名無しさん
2017/09/24(日) 11:20:12.29ID:zoxaw5LC >>893
構造体とオブジェクトの違いがわからない(理解しようとしない)クズ
構造体とオブジェクトの違いがわからない(理解しようとしない)クズ
906デフォルトの名無しさん
2017/09/24(日) 11:56:26.32ID:dIaNhcU3レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
