「カプセル化(プログラミング)」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
4行目: | 4行目: | ||
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。 | かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。 | ||
− | 一方、カリフォルニア大学バークレー校の有識者を中心とした「[[インターネット]]を作った人たち」は「[[階層化の有害性]] | + | 一方、カリフォルニア大学バークレー校の有識者を中心とした「[[インターネット]]を作った人たち」は「[[階層化の有害性]]」として「カプセル化は絶対にやめろ」としている。大雑把にいうと、教科書の上では素晴らしく、最初は良くても、将来的な改修の際に隠蔽された[[データ]]にアクセスできないと解決できない問題が出てきて、非常に高確率で[[デスマーチ]]に陥るというのである。医学的にいえば「手術ができない存在」であるといえる。 |
− | |||
− | |||
オブジェクト指向の発案者である[[アラン・ケイ]]も[[コーディング規約]](頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わった[[オブジェクト指向プログラミング言語]]にはどれも「private」などという概念はない。 | オブジェクト指向の発案者である[[アラン・ケイ]]も[[コーディング規約]](頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わった[[オブジェクト指向プログラミング言語]]にはどれも「private」などという概念はない。 | ||
17行目: | 15行目: | ||
ただしこのModelクラスを使うと[[頂点データ]]は遮蔽されておりアクセスできない。 | ただしこのModelクラスを使うと[[頂点データ]]は遮蔽されておりアクセスできない。 | ||
− | [[物理演算エンジン]] | + | [[物理演算エンジン]]に食わせるのにどうしても頂点データがどうしても必要なのにだ。 |
− | |||
− | |||
− | + | そこで[[GPU]]に送信後にGetData関数で頂点データを返してもらうというトリッキーな[[コード]]で回避する。 | |
+ | しかし、この方法では動かない環境がある。 | ||
+ | [[iOS]]や[[Android]]の[[OpenGL ES]]なんかがそうだ。 | ||
+ | こいつらはGPUとの通信が一方通行。 | ||
− | + | そこで事前に3Dモデルから頂点データを抜き出し別[[ファイル]]に保存しておく方法で回避する。 | |
+ | ファイルが2個になりました。 | ||
+ | 謎の不具合が発生しています。 | ||
+ | 片方のファイルの更新を忘れました。 | ||
− | + | カプセル化は恐ろしいね! | |
== 関連項目 == | == 関連項目 == |