オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/09/26(火) 07:20:38.98ID:qu+DPehL
前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/

類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
2017/10/01(日) 16:27:46.46ID:OXD0q5aq
>>290
考えないとわからないところなんて俺らの仕事の範囲ではないのかもな
2017/10/01(日) 16:37:01.00ID:H5Asg8Dc
>>291
> 考えないとわからないところなんて俺らの仕事の範囲ではないのかもな
だから設計は、俺ら=お前の会社の同僚 の
仕事の範囲でないんだろ?
2017/10/01(日) 17:33:06.46ID:iOi6hm11
設計とコーダーの違い
2017/10/01(日) 17:41:42.32ID:yUwdbVfT
いやまじ、使わないというのは正しいんだろうよ
使わないから必要ないと思ってる時点でおさとが知れるというだけなのでは
2017/10/01(日) 17:49:10.14ID:H5Asg8Dc
伝言ゲーム理論を使えば三段論法で
デザパタが使われていないことを証明できる

デザパタは
俺は使わない

それは使わない

どれも使わない

だれも使わない

使わない

故にデザパタだ誰も使っていない
2017/10/01(日) 17:50:50.31ID:NdVkYjBm
iOSアプリ開発で公式ドキュメント読んでて
これなんかObjective-C固有のプログラムガイドかと思ったら
アップルのシステムやアプリじゃ実際にこんなパターンを使ってるよ参考にしてね!
だったっけなぁ…

Objective-C プログラミングの概念
https://developer.apple.com/jp/documentation/CocoaEncyclopedia.pdf

現行でこういうのを使いまくった上でiPhoneやiPadが町中で日々動いてるわけで
デザインパターンは無いんだ!デザパタ厨が!とか言われても
おじいちゃん、そろそろ引退したら?としか…
2017/10/01(日) 18:00:38.71ID:H5Asg8Dc
>>296
マジ書いてあんなw

多くのCocoaアプリケーションでは、モデルオブジェクトの状態が変化すると、
その通知はコントロー ラオブジェクトを 経由して ビューオブジェクトに伝わります。
図 7-2にこの様子を示します。2つの基 本的なデザインパターンが関与していますが、よりすっきりとしています。

図 7-2 複合パターンとしてのMVC(Cocoa)
User action
Update
Update
Notify
Mediator Strategy Controller
ModelView
Command Composite
Observer

この複合デザインパターンでは、コントローラオブジェクトはMediatorパターンと
Strategyパターンを 包含しています。モデルとビューの間でやり取りされるデータフローを、
両方向とも仲介していま す。モデルの状態変化はコントローラオブジェクトを経由して
ビューオブジェクトに伝わります。さ らに、ビューオブジェクトには、ターゲットアクション
機構の実装という形で、Commandパターン も含まれています。
2017/10/01(日) 18:02:07.29ID:iOi6hm11
>>295
デザパタじゃなくてデザインパターンな
2017/10/01(日) 18:03:18.29ID:H5Asg8Dc
もう一つ

複合デザインパターンとしての
MVC「Model-View-Controller」は、より基本的なデザインパターンをいくつか組み合わせた形のデザインパターンです。
基本パターンどうしの組み合わせにより、MVCアプリケーションを特徴づける、機能の分割や通信経路を定義しています。
しかし従来型のMVCは、組み合わせる基本パターンが、現在のCocoaのそれとは違っていました。その違いは主として、
コントローラオブジェクトやビューオブジェクトに与える役割に関するものです。
当初の(Smalltalk流の)考え方では、MVCはComposite、Strategy、Observerというパターンから成っていました。

Composite:アプリケーションのビューオブジェクトは、実際には入れ子になったビューの
複合体(composite)であり、このビュー群が協調して(ビュー階層の形で)動作します。この表示コンポーネントは、
ウインドウを頂点とし、その下にテーブルビューなどの複合ビュー、さらにその下にはボタンなどの分割できないビューがあります。
ユーザ入力や画面表示の処理は、複合体を構成するどのレベルでも可能です。

Strategy:コントローラオブジェクトは、いくつかのビューオブジェクトに対する戦略(strategy)を実装しています。
ビューオブジェクトの機能は(視覚的)表示に関わる範囲に限定し、インターフェイスの振る舞いが当該アプリケーションに
おいてはどのような意味を持つか、の判断はすべてコントローラに委譲します。

Observer:モデルオブジェクトは、自分自身と直接的な関わり合いがあるオブジェクト(一般にビューオブジェクト)の
状態が変化すると、その通知を受け取ります。
2017/10/01(日) 18:03:24.42ID:iOi6hm11
>>296
>>297
Appleはああ見えてソフトの会社だから
そういうとこはしっかりしてる
2017/10/01(日) 18:14:08.71ID:H5Asg8Dc
ソフトウェアに強い会社(日本のハードのついでにソフトやってるとか
客の御用聞き会社とは違うやつ)は軒並みデザインパターンが
当然のものとして語られてる気がするね。

関数型のデザイン・パターン、第 1 回
https://www.ibm.com/developerworks/jp/java/library/j-ft10/index.html
2017/10/01(日) 18:26:16.96ID:RRIZa9RT
デザパタ使えないアピールするモチベーションが、デザパタ使ってない自分肯定でしかないのが見え見えだから、つまんない議論だよ
2017/10/01(日) 18:29:14.14ID:TmBxNMg6
あまり虐めないであげてよ
若気の至りってやつさ
2017/10/01(日) 18:51:21.95ID:qGSPhC6b
優越コンプレックスを抱えてる人は苦しいだろうなぁ
素直な心を取り戻せることを祈ってる
2017/10/01(日) 19:13:13.17ID:Pf7aXXU9
おk
これしか見たことねーけど
使われてるんだな
2017/10/01(日) 19:22:42.09ID:2hcCMVoe
>>26
凝った設計にもできるけど(たとえばDDDのドメインサービスとかさらに突っ込んだDCIのコンテキストベースで)
このくらいの要件なら自販機オブジェクトだけ定義して
在庫管理と商品種別はRDBで管理し、金銭投入→購入のタイミングで
SQLを発行して該当する飲料を商品種別テーブルからピックアップし、その後
在庫管理テーブルで在庫減らしのSQL発行で十分なのでは?

O/Rマッパーの使い方を学びたいならクラス図のようにオブジェクト化するのも手だけれども
2017/10/01(日) 19:58:14.48ID:TmBxNMg6
意味不明なウンチク垂れてないでコードを書けコードを
2017/10/01(日) 20:31:25.12ID:kJ8csjIE
数百スレ飛んで自販機戻ってきたw
2017/10/01(日) 23:59:30.23ID:DL6cgIdt
バターン君をいじめて
得るもんがあったのかどうか
各自寝る前に自問自答してほしい
2017/10/02(月) 00:03:17.40ID:1fd9LcjX
デザインパターンがいらないって言ってるやつは
実装側の視点でしか考えることができないってのがわかった。
これが得たものかな
2017/10/02(月) 00:04:09.63ID:wn2w8Fsj
ん?これいつものあたまおかしいおじいちゃんでしょ。
2017/10/02(月) 00:09:14.81ID:wn2w8Fsj
>>308みたいに自演して
「結局キャットドアに戻ってきたな」とかだせえリセット図るの。
けっこうおっさん…つうより“じいさん”って歳で構造体から脳が進化してないから
オブジェクト指向側からのアプローチが歳で理解できない可哀想な初老
313308
垢版 |
2017/10/02(月) 00:15:00.22ID:YWGKtTIQ
>>312
何の自演だよ?
どのレスと同じやつだと勘違いしたのか教えてくれ
2017/10/02(月) 00:20:41.00ID:j0IOuO2e
そろそろ設計の議論もやめるかって思う
プログラムってどう組んでも動くしね
正解なんてないんじゃないかなぁ?
って思うようになった
仮にあったとしてもそれをどうやって証明するのか?
非常に虚しい気がしてきた

デザパタ、オブジェクト指向使うだの使わないだの
どっちが正解もクソも組んで金もらえたらそれでしめーな話をグダグダうるせーよな給料安いくせに

今、組めている人間を否定することはできない
また、否定する必要もない

俺等が話してることは麻雀のどの牌を捨てたらいいか?みてーな話でどうでもいいんだよきっと
初っ端字牌がないから国士無双は狙っては駄目ですよ
って言ったところで実際に狙って来ちまったらそれを誰が否定できようか?
そんなくだらない内容なんだよ
2017/10/02(月) 00:37:35.29ID:cbUKrfm3
> プログラムってどう組んでも動くしね

動くだけじゃダメでしょw
最低限じゃん。
動くだけの汚いコードたくさん見たこと有るよ。
2017/10/02(月) 00:42:43.36ID:j0IOuO2e
>>315
でも客からしたらどうでもいいよね
2017/10/02(月) 00:47:44.45ID:YWGKtTIQ
「プログラムを組む」っていう表現って何となく手続き的な臭いを感じる
プログラムを組み上げるものとして見てるってことだよね
2017/10/02(月) 00:48:05.40ID:ET3hV4TH
>>316
保守に工数かかるじゃん
無駄じゃん
2017/10/02(月) 01:12:12.35ID:j0IOuO2e
>>318
次の開発が無かったら保守にかけたお金は無駄だよね?
この辺は君等はトレードオフの問題を勝手にプラスサムの問題だと履き違えている
ぶっちゃけ馬鹿にしか見えないのであまりおおっぴらに言わない方がよい
2017/10/02(月) 01:15:20.46ID:j0IOuO2e
汎用性はトレードオフのはずだ
なぜ君等はつければつけるほどお得みたいなアホな考えもってるんだ?
保守なんかねーよ(あるかどうかわからないじゃん)
2017/10/02(月) 01:19:24.52ID:j0IOuO2e
改修の方向性も付けた汎用性が役に立たんようなもんだったらまるまる無駄であろ

でもこういう俺の確率が高い方もしくは損害が少ない方に倒す的考えも
所詮は麻雀の捨て牌議論と何も変わらないんだろうな
って話だな

やっぱ意味ねぇよな設計に拘るのはやめたほうがいいな
金にならねぇ
2017/10/02(月) 01:25:51.90ID:cbUKrfm3
>>316
> でも客からしたらどうでもいいよね

いくらでもコストがかかってもいいなんて言う客はいないよ
2017/10/02(月) 01:27:35.32ID:cbUKrfm3
>>320
> 汎用性はトレードオフのはずだ
汎用性の話はしてない

同じコードを何度も書いたり
コピペするとコストがかかるって話をしてる
2017/10/02(月) 07:52:52.48ID:j0IOuO2e
>>323
そうとは限らないよね
2017/10/02(月) 08:05:00.38ID:hd0o7pZ3
>>324
一般論だろ
2017/10/02(月) 09:31:52.84ID:j0IOuO2e
>>325
つまり字牌を切るといいよって話だよね
2017/10/02(月) 09:37:00.33ID:/w0x9Uo4
使い捨てのどうでもいいシステムは
使えない単価安い奴に
やらせとけって話じゃないの

まあ保守は作り始めた時点から始まってるから
リリースまで行けないかもしれないがな
2017/10/02(月) 10:10:18.07ID:hd0o7pZ3
>>326
運ゲの麻雀で例える意味がわからない
せめてオセロとか将棋で例えろよ
2017/10/02(月) 10:12:15.16ID:xue4yogs
>>328
オセロと将棋だと納得できるんだ?
2017/10/02(月) 14:17:29.12ID:hd0o7pZ3
>>329
出来るよ
どっちも定石があるじゃん
そう言うこと
まあ麻雀よりはイメージしやすいでしょ
2017/10/02(月) 14:48:34.13ID:j0IOuO2e
>>330
お前がアホだからできるだけだ
2017/10/02(月) 16:11:15.50ID:hd0o7pZ3
>>331
デザインパターンて、将棋における定石みたいなもんじゃん
定石覚えてなくても駒動かせれば将棋はできるけどねー
2017/10/02(月) 16:43:00.86ID:XscuzJF4
定石の有用性を証明してみろ
できなければ定石は役立たずのゴミということ
2017/10/02(月) 19:37:25.82ID:cbUKrfm3
定石は役立たずのゴミ
飛車は移動して右下隅の王を金銀桂馬香車で囲う
って言ったほうがわかりやすいじゃん

そもそも定石なんて知らなくても将棋はできるし、
何十年もやっていれば定石なんて自然に思いつく
2017/10/02(月) 20:16:28.02ID:j0IOuO2e
AIに以前からの定石がひっくり返されてるらしいなw
デザパタもAIにひっくり返される日も近いなw
2017/10/02(月) 20:25:48.81ID:YWGKtTIQ
将棋で言う定石はデザインパターンよりももっと粒度の大きいパターン
MVCかMVVMかみたいな
デザインパターンは手筋に近い

何十年もやってれば自然に思いつくことを
数週間から数ヶ月程度の断然短い時間で理解できるようになることや
より高い抽象度で物事を考えられるようになることに価値がある

おじいちゃんに何言っても無駄かもしれんが
2017/10/02(月) 20:40:52.30ID:cbUKrfm3
>>335
AIで新しい定石(デザパタ)ができるってことか?
それは嬉しいことだがw
2017/10/02(月) 20:40:58.78ID:ET3hV4TH
そりゃあ常識はひっくり返されるためにあるからな
ひっくり返ってそれが有益ならそれでいいじゃん
2017/10/02(月) 20:42:54.27ID:cbUKrfm3
>>336
> 何十年もやってれば自然に思いつくことを
> 数週間から数ヶ月程度の断然短い時間で理解できるようになることや

寿司学校に3ヶ月通っただけの店がミシュランになるなんて許せん
10年間下積みをしてやっと職人になれるんや。
寿司の修行ってのはなぁ、寿司の勉強じゃなねぇだよ
2017/10/02(月) 21:15:12.14ID:XscuzJF4
そもそもこんなスレがあること自体おかしいんだよ
オブジェクト指向設計なんてやってればそのうちできるようになるし、それが人と比べてどうなのかなんて気にする必要もない
人それぞれのオブジェクト指向でいい
2017/10/02(月) 21:24:38.66ID:cbUKrfm3
人それぞれの寿司でいい
カルフォルニア巻き
2017/10/02(月) 21:26:35.73ID:ET3hV4TH
>>340
それをあーやこーや言い合うのが子のスレなんじゃないの
デザインパターンを学習することによる不利益を逆に教えてほしいんだが
2017/10/02(月) 21:56:37.69ID:j0IOuO2e
>>342
麻雀の捨て牌議論といっしょで別に国士無双狙ってもええで
誰も困らん
2017/10/02(月) 22:19:15.07ID:KZXDpABL
Smalltalkって書くと荒れる?
2017/10/02(月) 22:26:05.82ID:cbUKrfm3
>>344
こっちへどうぞ

Smalltalkとオブジェクト指向議論スレ [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1505709697/
2017/10/02(月) 22:32:16.34ID:YWGKtTIQ
>>339
ネタじゃなく本気で寿司屋と比べてるなら
ソフトウェアの世界から早めに足洗って転職したほうがいいよ
2017/10/02(月) 22:33:42.19ID:cbUKrfm3
>>346
お?理由は?説得力ある答たのむね!
2017/10/02(月) 23:45:29.99ID:CnUfppMG
>>343
せめて会話しようぜ
言葉のキャッチボールをさ
2017/10/03(火) 01:32:34.93ID:yLH9r4Cn
寿司屋の板前っていうより半完成品を卸してる問屋みたいなもんだろ
で、おまえらはひたすらごはんを詰め込む係
プロパー様がネタを乗せて最後に元請け営業様がたんぽぽ乗せる
2017/10/03(火) 07:32:10.18ID:ObXIbUik
スシローはIT化進んでるから寿司はオブジェクト指向で管理してるよな

インタフェース名はsushiと予想する
2017/10/03(火) 08:06:49.21ID:7lOo08Em
>>350
寿司メイカーはストラテジーパターン?
2017/10/03(火) 08:29:46.58ID:/tfwZRhN
Javaの注釈とかC#の属性ってどうなの?
353デフォルトの名無しさん
垢版 |
2017/10/04(水) 20:25:20.81ID:oJzQgUY3
オブジェクト指向スレで寿司の話題だから、
シャリを基底クラスに例えてネタごとにシャリクラスを継承、
軍艦巻インターフェイスの実装とか、お子様にはワサビプロパティをtrueにとか、
そんな話かと思ったら全然違った。
2017/10/05(木) 00:03:31.68ID:qwtqiP1S
わさびプロパティってtrueとfalseのどっちだったらわさびが乗ってるんだ?
2017/10/05(木) 01:28:49.65ID:XUc7C4CE
わさび=真
2017/10/05(木) 07:17:31.37ID:gKycoOZO
寿司クラスのプロパティはシャリネタワサビだろ

スシローに関して言えばワサビのプロパティは不要
2017/10/05(木) 07:18:38.24ID:gKycoOZO
>>355
ワサビの状態は複雑だから真偽で取るなんてナンセンス
2017/10/05(木) 08:10:53.17ID:i3KEdcm5
各プロパティは読み取り専用だろ
2017/10/05(木) 08:16:20.73ID:qwtqiP1S
わさびの量を調整したい場合はどう拡張すればいいの?
例えば罰ゲームで使うような山盛りわさび寿司
外国人向けの程よくわさび増量

あと、わさび巻の場合はわさびプロパティの内容はどう持つべきか?
2017/10/05(木) 08:22:39.12ID:i3KEdcm5
>>359
寿司.putワサビ(量)
じゃないの
2017/10/05(木) 08:23:16.92ID:jqjwBcqV
またそれ系の話か
荒れそう
2017/10/05(木) 08:27:51.49ID:i3KEdcm5
というかあれか
寿司職人.putワサビ(寿司,量,状態)
かな
2017/10/05(木) 20:38:04.24ID:eqICMYt8
またキャットドアw
2017/10/05(木) 20:41:30.98ID:817UmOHy
大漁大漁!
2017/10/05(木) 23:44:16.07ID:W3Z8qYkC
>>363
キャットドアはやめろ
オブジェクト指向云々とは別のところに問題がある
またこの手の話するならちゃんと要件定義してからやれよ
2017/10/06(金) 00:35:25.91ID:jRqiq413
>>365
1つ賢い意見が出たな

要件定義をしないとキャットドアは作れない!

他のものもそうでないかな?
2017/10/06(金) 00:59:27.12ID:HTxWyqCb
どういう用途のソフトウェアかに関係なく
オブジェクト指向でモデリングできると思ってるやつが多々いるのはオブジェクト指向に密接に関係した問題
2017/10/06(金) 06:35:11.92ID:jC5wWKBy
>>367
できないの?
2017/10/06(金) 08:14:28.44ID:fl7uW9c1
>>366
寿司屋はわかりやすくね?
キャットドアやるならまずドアを作ってから継承するなりで基礎がないと
2017/10/06(金) 08:16:59.53ID:2VD9nX8b
物理的な形あるものを題材にするのはアホ
2017/10/06(金) 08:28:32.38ID:H+o2EjG4
そんなモデリングは天才に任せるわ
2017/10/06(金) 09:35:10.87ID:fZccj8aN
>>370
オブジェクト指向が間違っているのでは?(笑)
2017/10/06(金) 12:09:15.03ID:1IZeYBj0
オブジェクトという名前が悪い
責務指向とか役割指向の方が適切
2017/10/06(金) 14:21:58.68ID:5osgMmV8
>>359
enum ワサビ量 {なし, ちょっぴり, 少なめ, やや少ない, 普通, やや多め, 多め, メガ盛り, ギガ盛り, テラ盛り, ペタ盛り, ワサビのみ};
2017/10/06(金) 15:07:25.77ID:fK99UxEG
キャットドアで味を占めちゃってまぁ…
2017/10/06(金) 15:43:29.32ID:HTxWyqCb
簡単に篩にかけられてホントいいねこれ
377デフォルトの名無しさん
垢版 |
2017/10/06(金) 21:48:40.87ID:Em99Pggz
処理の流れがあちこちに飛ぶし
あちこちから飛んでくるし
「これ誰が保守するんだ?」って気分になってる。
ちょっとした修正が今までならピンポイントでテスト合わせて30分位のところが
全体見るために3時間かかる感じ。
能力高くないと無理だと思うけど人手不足だし集められるかな?
もっと緩いオブジェクト指向でいいと思う。
こんなガチガチで上手くいったプロジェクトってあるの?
2017/10/06(金) 22:04:02.02ID:T+Euxqip
>>377
犬のしょんべんに当たっちまったな
自分以外の奴がソースコードを読めないようにする工夫だそれ

元凶がインターフェースで
継承してあるすべてのクラスのインスタンス作成箇所全部をチェックしないと処理がわからない
2017/10/06(金) 22:05:57.94ID:Y8RIMSRs
チンポについて教えてください。
チンポをインスタンス化して、引き数にマンコを持つキンタマメソッドの戻り値
ザーメンを取得したいのですが、コンパイル結果がフニャチンになります。
どうしたらいいですか。
2017/10/06(金) 22:27:28.80ID:FHIJEXWg
はい
2017/10/06(金) 22:47:26.17ID:enlE2n2s
>>377
それガチガチなんじゃなくて設計や実装が下手なだけ
2017/10/06(金) 23:17:58.09ID:H+o2EjG4
>>377
ほんとにガチガチならそのクラスを作ったやつの後任者〜お前の前任者までの間で間違ったクラスの使い方が広まったんだろうよ
2017/10/07(土) 00:17:06.44ID:XGVjma4L
>>379
それガチガチなんじゃない。
2017/10/07(土) 05:03:01.30ID:8/GtqdSW
“これはこれをする奴”と一目でわかって
処理飛ばした後はそいつがよしなにやるから
細かいことは考えなくていい。
というのがオブジェクト指向の売りだから
「コイツはなにやってんだよ!」と処理追うのに混乱するようなのは
基本を履き違えてる気はする。
変なとこから流れてきた自称プログラムのプロがやりがちな
暗号みたいなクラス名とか
2017/10/07(土) 06:51:50.71ID:6GKmJG1C
だいたいインターフェースが元凶だって
実行してみないとわかんねーし
2017/10/07(土) 07:09:22.30ID:sBPFzIIo
インターフェースが現況って言ったってクラス名とメソッド名である程度目的はわかるようになってるんじゃねえの
それができてないなら単なる設計ミスじゃん
2017/10/07(土) 07:23:39.11ID:6GKmJG1C
>>386
バカの作るインターフェースは思いつきで入れた汎用性を実現するものだからそもそも設計書に書かれない
2017/10/07(土) 07:43:58.72ID:PgxJwh6E
>>387
そういうもんか
そういう用途で使うべきではないわな
389デフォルトの名無しさん
垢版 |
2017/10/07(土) 08:28:19.15ID:nPfSE+SF
>>384
手続き型みたいなのでバグ探すと、大体1ファイルの中見て
処理の流れもその中だけ追えば良くて
シンプルな流れだからチョイチョイってできるけど
完全なオブジェクト指向だと、
「この値を設定してるのは、ここ、
…、
じゃなくて、コイツ他のとこで設定してるのか〜、
ここ?
あ、もっと上か〜」
みたいにあちこち辿っていくから
あんまり良いことに感じないけど。
影響範囲も広いし。
考えなくていいのは、製造するときに何が何をすると
ハッキリと決められてる時で
どこにバグあるかとか見るときは
「ここだろう」と最初に思ったとこではなかったりしなくね?
設計が難しいなら、
バカでもできる簡単な設計で済む手続き型最強な気がする。
390デフォルトの名無しさん
垢版 |
2017/10/07(土) 08:32:25.87ID:nPfSE+SF
>>389は詳細設計書位しかなくて、クラス図とかもろもろないケースの話で。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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