例として、Javaなどのオブジェクト指向言語では、処理を記述する際に何らかのクラス内に記述すると思うのですか、そのように、何らかの処理がどれかしらのクラスに属して入れば、そのクラスの中でどのように処理されていても、それはオブジェクト指向で書かれているというのでしょうか?それとも、オブジェクト指向特有の、クラス内での処理の書き方があるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
「オブジェクト指向設計に基づいて実装されているコード」としか言いようがない。
オブジェクト指向設計原則がわかってないならググればいくらでも説明が出てくるけど
明確な境界線は存在しないんで、一部が原則から外れるケースもあるから、あとは主観の問題。
投稿2021/03/12 12:33
総合スコア8947
0
ベストアンサー
何を元にどういう方向性のアドバイス求めているのか分からないですが、
そもそも「概念」「考え方」なのでコードそのものを指すことはないです。
私としてはJavaを想定して記述しました。
Javaにおいて(というかほとんどの言語において)、全ての情報を「オブジェクト」として扱います。
変数1つ取ってもそうです。Stringやintも「そういう型のオブジェクト」です。
それらの情報をきちんと役割を与えてきちんと役割に合った仕事をさせること
が「オブジェクト指向」と言ってもいいと思います(100%の説明ってないです。概念なので)
なので、「すべての情報をオブジェクトで扱うよ」と言っても
役割曖昧で1つのメソッドであれもこれも詰め込んでしまっている場合は「オブジェクト指向から反する」と
言えるかもしれません。
ファットコントローラが一例です。
Javaであればパッケージも役割や意図をもって振り分けるべきだし、
依存しまくった作りはよろしくないです(「疎結合」「依存性の注入」で調べると良いです)
絶対の正解はないので、そこは考えるしかありませんし、アプリケーションによってそれぞれの役割は変わってくるので、CRUDのコア部分は同じとしてもコントローラやモデルの構成は要件によって変わってくることもあります。
投稿2021/03/12 12:05
編集2021/03/12 12:16総合スコア80875
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/12 12:17
2021/03/12 16:27
0
オブジェクト指向については『調べてください』。
プロでも調べながらやっています。
オブジェクト指向(OOP)は『考え方』でしかないです。それ以上でもそれ以下でもないです。
OOPというのは、『データ(= フィールド) と処理(= メソッド) をひとまとめにしたオブジェクト』なるものを中心に見る考え方です。
オブジェクトだけが対象データと処理を知っている。だから管理を任せられる。
そういう考え方です。
そのオブジェクトを作るために、コンパイラやインタプリタに『こういうデータ構造があるので、よろしくね★』っていう提示をするためにクラスを定義します。
ただし、必ずクラスを組まないとOOPではない……ではないです。
JavaScriptの初期だと、クラスが無いです。その代わり、プロトタイプと呼ばれるものがあります。
そういう風にクラスは単にコンパイラとかに教えるだけのものです。
それで、定義するだけではオブジェクトが出来ません。なので newとかを使ってインスタンス化します。
C++の場合はnewを使わなくてもインスタンス化できますが。
メソッドはそのオブジェクトが行う処理。フィールドはオブジェクトが管理するデータ。
Javaでいう String を考えてみてください。
String s = "Hello";
としたら、オブジェクト s が持つデータは "Hello" ですね。
その処理として、『N番目のデータを取り出す』とか『空かどうか』をチェックしたり、
『文字列を分割』とかみたいなことが出来ますよね。
ヒント: String (Java Platform SE 7 ) - Oracle Help Center
そういう風に、オブジェクトだけが対象データや処理方法を知っているという状態にするために、OOPを用います。
だから『やればいい』っていう問題ではなく、『いつ使うか』とかが問題です。
使えば必ず良くなる……わけじゃないです。
順番が違うのです。クラス -> OOPだ!! ではなく、
OOPを再現するためにクラスやらなんやらがあるのです。
投稿2021/03/12 12:35
総合スコア4962
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。