トップページ > プログラム > 2016年06月14日 > mQ0l4Gv2

書き込み順位&時間帯一覧

36 位/187 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000022



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net

書き込みレス一覧

オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net
181 :デフォルトの名無しさん[]:2016/06/14(火) 23:43:03.25 ID:mQ0l4Gv2
手続き型の代表がC言語でOOはJavaだとして、C言語をバリバリやってる(やっていた)人の方が業界経験も長く実行環境がリソース的にシビアな場面など経験が豊富になる傾向はあると思う。
例えばサーバサイドJavaから入ってフレームワークを利用するような経験が多い人は設計コストは少ないと思うし、それをやり玉に挙げるのはフェアな討論ではないと思う
個人的にはOOPとしてのJavaの利点の一つにカプセル化のための細かなアクセス修飾子にあると思う
例えばC言語のfopenで使うFILEはポインタ型で定義されているが、大概の処理系ではFILEの中身の構造体はヘッダファルに書かれているのである意味公開されている
この関数自体はANSI-C規定なのでIFとしては処理系には依存しないがFILEポインタの中身に関しては規定がないので実装依存になる。
つまりFILEの中身はヘッダに書かれていようが触ってはいけないのが暗黙のルールとなっている。
もちろん処理系が固定でstdiolibの実装を熟知しているなら触るケースがあるかもしれないけどこれは稀なケースだ。
オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net
182 :デフォルトの名無しさん[]:2016/06/14(火) 23:43:26.82 ID:mQ0l4Gv2
Javaならjava.io.Fileもしくはjava.nio.Pathがそれに当たるとおもうが、このクラスが公開しているAPIおよびメンバ変数へのアクセスに関しては制限はない。
これはC言語にはないJavaの強力なアクセス修飾子による恩恵だと言える。ルールベースではなくシステム的にアクセスできないカプセル化の機構はソースコードを見ただけで設計思想が十分に伝わる個人的には説得力のあるコードが書けると思っている。
ただ、このJavaのカプセル化を正しく使って自前のクラスを設計できてる人間がどれだけ居るかと言われると半分にも満たないと思う。
勝手に非公開のメンバ変数やメソッドをpublicに直して動かしましたなんて事する人間は多くいるしpublicが好きならpythonでもやってくれって思う事は多々ある。
別にJavaエンジニア批判をするつもりはないし、C言語書きが皆優秀なんて思ってもいないが、ここでC言語書きの人たちの主張の根源はこんな感じじゃないのかなと個人的に思ったので。
元C言語書きで現在Javaメインでやってる自分としてはヘッダファイル書かなくていいのと最近のIDEのJVM系言語の強力さ、ビルドツールの充実さからJavaの方が気楽で好きではあるけど。
長文失礼。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。