トップページ⇒tech
31コメント11KB

方式が二つ以上考えられるときに悩むスレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/06/30(金) 21:48:07
書き方や方式について
・拡張性は高いが冗長
・優れてはいるが共有性、一般性が低い
・再利用性は高いが準備に手間がかかる
・準備のコストはかかるが将来コストが低くなる
・安全性は高いが作業コストが高い
など各視点で悩んだときに。
0002デフォルトの名無しさん2006/06/30(金) 22:05:10
RELAXとかAspectJとかコードジェネレータを活用すれば冗長でも少しは楽になる
0003デフォルトの名無しさん2006/06/30(金) 22:50:31
>>1
糞スレたてんな

ぱっと見て「ヘタだなぁ」と思うコード その3
http://pc8.2ch.net/test/read.cgi/tech/1149986051/
0004デフォルトの名無しさん2006/07/01(土) 00:24:35
>>1

・拡張性が高く無駄がない
・共有性、一般性が高く優れている
・再利用性が高く準備も手軽
・準備のコストもかからないし将来コストも低い
・安全性が高く作業コストも低い

こんな方式を採用すればいいだけの話
0005デフォルトの名無しさん2006/07/01(土) 00:30:23
まあ、そんな方法が常に見つかるなら設計者はずいぶんと楽なわけで、
トレードオフではみんな悩んでエイやで決めてしまうこともあるだろう。

でもその判断基準は各々違うからこんなスレで議論してもあまり有用な
答えは望めない。

∴ 答え: 糞スレにつき削除依頼しろよ。
0006デフォルトの名無しさん2006/07/01(土) 00:38:41
常に見つかるなんてどこにも誰も書いてないし
偏り過ぎないようにバランスを考えることだけも悪か。
0007デフォルトの名無しさん2006/07/01(土) 00:53:47
クラス設計は選択肢が沢山ありすぎて悩むけど
デザイン・パターンを知ってると割と良い解を選べる可能性が広がるよ。
継承ばっかりに頼らずに
デコレータとかオブジェクトコンポジションの考え方とかは知っておいたほうがいい。
0008デフォルトの名無しさん2006/07/01(土) 01:09:22
>>4, >>6
> こんな方式を採用すればいいだけの話
> 常に見つかるなんてどこにも誰も書いてないし

見つからなかったらどうするつもり?

採用すればいいなんて能天気なこと言うんなら、見つからない場合に
ついてもなんか考えがあるのかな?

それとも、話についていけなさげだから、文言にいちゃもんですか?

> 偏り過ぎないようにバランスを考えることだけも悪か。

それこそ、「悪」なんてどこにも書いてないんだけどね。(w

それが良いか悪いかも、状況依存って書いてある。
0009デフォルトの名無しさん2006/07/01(土) 01:11:49
>>8
読解力なさすぎ
0010デフォルトの名無しさん2006/07/01(土) 01:16:11
>>8
話についていけないって、まだ何の具体的な話は出てないじゃん。
それに出たとしても、状況に応じてトレードオフを考えるってこと以上に
話が進むとは思えない。
0011デフォルトの名無しさん2006/07/01(土) 01:18:46
>>8
なんか話したいことがあるなら、お前が話題を提供しろ
0012デフォルトの名無しさん2006/07/01(土) 01:42:57
>>10-11
状況依存って言葉難しかった?

そもそも、>>5 に

> でもその判断基準は各々違うからこんなスレで議論してもあまり有用な
> 答えは望めない。

って書いてあるのを、わざわざ繰り返してる >>10 ってちょっと >>9 だね。(w
0013デフォルトの名無しさん2006/07/01(土) 01:47:53
>>12
で、お前はいったい何を話したいのだ?
メタ議論はつまらんぞ。
0014デフォルトの名無しさん2006/07/01(土) 01:57:02
>>13
え゛、>>5 に答えが書いてあるんだけど…。

ここまで、>>9 とは思わなかったよ。
0015デフォルトの名無しさん2006/07/01(土) 01:58:43
8じゃないけど・・

題
プロジェクト内に、基本画面クラスAを継承した画面クラスB,画面クラスC,画面クラスD...がある。
今、画面クラスCに制御がある時点で、あるまとまった処理Xを行う必要がある。

1.処理Xは、画面クラスC固有のオブジェクトには影響・依存しない。
2.処理Xは、画面クラスB,画面クラスD..から呼び出すことに変更される可能性は低いが、ゼロではない。
3.処理X内では、現在基本画面クラスAでprotected宣言されている数個の関数を呼び出す必要がある。
ただしこの関数はメンバ変数には影響しない。
4.処理Xと同様な形態(1〜3)の固まりは同プロジェクト内に他にも存在する。

問い:処理Xの実装方法を考えよ。

�@画面クラスCのprotectedメソッドとして実装する。
画面クラスの変更があった場合はメソッドを移す。

�A処理X内で呼び出される基本画面クラスAの該当メソッドをpublicに変更し、
固有の画面クラスに依存しない処理をまとめるためのクラスPを用意し、
そのメソッドとして処理Xを実装する。(メソッドX)
メソッドXでは、画面オブジェクトのポインタを取得し、
ポインタを使って内部で関数を呼び出す。

�Bその他の実装方法をとる
0016デフォルトの名無しさん2006/07/01(土) 01:59:17
>>14
じゃぁ、お前が削除依頼出しとけ

============終了============
0017デフォルトの名無しさん2006/07/01(土) 02:06:50
>>15
擬似コードを示せとは言わないが、話が抽象すぎて判断できない。
0018デフォルトの名無しさん2006/07/01(土) 02:11:38
>>15
なんでAのprotected member functionにしないんだ?
0019デフォルトの名無しさん2006/07/01(土) 02:31:31
情報が足りなかったので追記します。

5.処理Xでは例えば通信処理などの「画面」と結びつきが小さいオブジェクトの使用、処理が多く含まれている。
また、処理Xは、複数の画面クラスの中でただ1つの画面においてだけ使用される予定である。

>>18
それも答えかと。
ただ、結びつきの弱い画面クラスAに実装し、継承した全ての画面クラスに
保持させる必要があるかという点があります。
0020デフォルトの名無しさん2006/07/01(土) 02:34:49
え、普通�Aでしょ。自分自身のオブジェクトを引数で渡す。
0021デフォルトの名無しさん2006/07/01(土) 02:44:17
>>19
よくわからないけど、そういう場合Callbackにするのでは?
0022デフォルトの名無しさん2006/07/01(土) 02:46:50
つーか、最終的に画面になにか表示するんだけど、本質的には画面と何の
関係もないってことでしょ?そういう場合、画面とは切り離すのが常套手段。
0023デフォルトの名無しさん2006/07/01(土) 02:48:59
�AでクラスPに実装して基本クラスAにfriendメソッド定義することで
解決できんかのう。
0024デフォルトの名無しさん2006/07/01(土) 02:51:23
>>23
それは嫌だ・・・
0025デフォルトの名無しさん2006/07/01(土) 02:57:35
もろObserverパターンじゃないのか?知らんけど。
0026デフォルトの名無しさん2006/07/01(土) 06:05:46
>>15は>>1のレベルにすら達してない予感
0027デフォルトの名無しさん2006/07/01(土) 10:47:51
エンピツ転がして決めろや
0028デフォルトの名無しさん2006/07/01(土) 11:48:05
文句はいっちょまえだが実は初歩もわかってないというのが
2chでよくあるケース。
よくわからないことが自覚ができている奴ば良い方で
単純に知識と経験がなくてトンデモな答えを
消去する常識的区別すらできないことを状況が悪いと
自分に言い聞かせる思考停止設計者が手遅れ。
0029デフォルトの名無しさん2006/07/01(土) 13:50:12
>>28
何の話し?
0030デフォルトの名無しさん2006/07/02(日) 01:04:35
話に送り仮名を使うかどうか悩むな
0031デフォルトの名無しさん2006/08/04(金) 15:45:19
>>1 を見てなんか、絶望先生っぽいと思ったのは俺だけ?
■ このスレッドは過去ログ倉庫に格納されています