- クラス名・変数名に迷ったら書き込むスレ。Part24
756 :デフォルトの名無しさん[sage]:2014/09/04(木) 00:20:45.89 ID:34rt8A6n - >>748
>スレタイからはずれますがクラスの設計が問題ならそこからお願いします。 クラス設計の観点であれば、Messgeオブジェクトの責務(responsibility)は 以下のようなものになると(自分は)考える: ・受信したバイト列をデシリアライズしてインスタンスを生成するコンストラクタ ・メッセージの各要素を読み出すゲッター ・デバッグ用途に人が読みやすい文字列に変換するインスペクタ 要するに、メッセージは状態を持たない不変(immutable)オブジェクトと見る 従ってクライアントの状態を管理するのはMessageではない他のオブジェクトであり、 今回の命名は(Messageクラスではなく)状態管理クラスのメソッドになる そして、Messageインスタンスはそのメソッドへ渡すパラメタに位置付けられる ここで状態管理という機能に着目すれば、GoF本のStateパターンが参考になるかもしれない つまり状態管理オブジェクトはステートマシン(状態遷移機械)というモデルに抽象化され、 現在の状態(current state)と到着した入力イベント(input event)である受信メッセージの種別(=クラス)との 対(pair)から次の状態(next state)と出力イベント列(output event seqence)を導く関数として定義される あるいは出力イベントの代わりにアクション(action)としてファイルI/Oや画面表示のような手続きでもいい こうしてクラス設計自身の視点を変えてみると、また別の命名法則が見つかるかもしれない
|
- 【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
190 :デフォルトの名無しさん[sage]:2014/09/04(木) 00:34:56.55 ID:34rt8A6n - MessagePad(NewtonOS)用の NewtonScript も忘れないであげて....
(ちなみに >>184 の TeleScript は MagicCap用になる) さてそれはさておき、 >>188 Lua も入れないとなると、スレタイにある PHP や JavaScript の立場も、 「勝負にならない」という意味で微妙じゃないかと思う ただし Git、SQL、HTML をスクリプトと見なす意見には、断固として拒絶する
|
- 【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
193 :デフォルトの名無しさん[sage]:2014/09/04(木) 00:47:47.84 ID:34rt8A6n - >>192
ここはPerl/Python/Rubyといった汎用スクリプト言語プログラマが コード設計の技(わざ)を競うバトルロワイヤルの闘技場だから (Smalltalk なら、GNU Smalltalk や Little Smalltalk のコードは歓迎したい) もし反論があるなら、過去のお題について 一つでもSQLでコードを示してからにしなさい
|
- 【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
200 :デフォルトの名無しさん[sage]:2014/09/04(木) 01:05:53.97 ID:34rt8A6n - >>196
>SQLはともかくSQL ScriptはScriptで良いんじゃないか? >名前にScriptって書いてあるし。 ただ単に、バトル(=コード合戦)へ参加できる言語であることが資格だ >>193 を繰り返す: もし反論があるなら、過去のお題について 一つでも SQL Script でコードを示してからにしなさい SQL Script やその他大勢がスクリプト言語ではないとは言ってないし、 スクリプト言語の定義も無関係 もしこれらを話題にしたいのなら、別の雑談スレへ逝くか新スレ立てろ、って話
|