プログラミングをする上でクラス設計は必須です。
では、プログラムを作成する上でクラス設計を考える観点はなんですか?の質問に何と答えますか?
宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
オブジェクト指向プログラミングにおけるクラス設計であると仮定してですが、
こちらのページの内容が、私には大変参考になっています。
アークシステムさん「本には書いてないオブジェクト指向本には書いてないオブジェクト指向」
http://www.arksystems.co.jp/closeupit/object_oriented/
「第3章 :クラスの見つけ方 > 1クラスにするもの」
によれば、クラスにするにふさわしい対象は
0. 物
0. 結果(生成物?)
だけ、だそうです。
(ほかに「アプリケーションプログラムそのものを具現化するクラス」として、「プログラムクラス」「メインクラス」。これらは処理系や環境にひも付きなので設計で新たに考慮する事項ではないですね。「レイアウトクラス」は前述の「物クラス」の類)
アンチ例は「ファイル送信クラス」「データ受信クラス」「ログ制御クラス」「メッセージ表示クラス」「従業員管理クラス」など...
屁理屈を考えず思い切って倣ってみたところ、クラス設計で迷うことはほぼ無くなりました、私の場合は。
投稿2016/01/13 06:28
編集2016/01/13 07:31総合スコア728
0
プログラミングをする上でクラス設計は必須です。
関数型言語などのこともたまには思い出してください。
「このクラスは何である」と責務を考えることじゃないですかね
クラスベースオブジェクト指向以外の言語でも、
「このモジュールは何である」
って考えるのが設計ということでは
投稿2016/01/13 05:24
編集2016/01/13 06:51総合スコア13521
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
プログラミングをする上でクラス設計は必須です。
いえ、そんなことはありません。モジュール化、構造化設計は必要ですが、それが必ずしもオブジェクト指向である必要はないと思います。
では、プログラムを作成する上でクラス設計を考える観点はなんですか?の質問に何と答えますか?
各モジュールの強度が高く、モジュール間の結合度が低くなるように設計すべきです。
参考:モジュールの強度と結合度
オブジェクト指向におけるクラス設計を行う場合は、モジュールが情報的強度を持つように設計するべきだと思います。
また、オブジェクト指向を考えるときには、実体を表現するクラス設計よりも委譲のためのインタフェース設計のほうが重要かつ難易度が高いと思います。
投稿2016/11/08 04:10
総合スコア3401
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こんにちは。
プログラムを作成する上でクラス設計を考える観点はなんですか?
生産性を上げるにはどのようなクラス設計すれば良いかですね。
まずはざっくりターゲットをモデル化し、そのモデルをクラスに分解し、クラス間I/Fを検討します。
そして、クラスの実装を設計してます。
クラス設計に絞ると具体的には主に下記を考えてます。
0.データ構造とメソッドをできるだけモデルに沿って設計することで理解しやすく心がけてます。
0.メンテナンス工数を減らすため、同じことを2度書かないよう努力してます。(クラス的にはポリモーフィズムを重宝してます。)
0.名称をできるだけ解りやすく付けます。(意外に時間をかけてますが、まだまだです。)
0.各クラスを使う際にミスしにくいよう、内部データ/メソッドはprivateやprotectedにします。
まだ他にもあると思いますが、今思いつくのはこんなところです。
投稿2016/01/13 12:45
総合スコア23272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。