具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。
関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
前スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1155209226/
テンプレ追加事項あったらよろすく
ゲームにおけるデータ構造・クラス設計・パターン2
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2008/05/23(金) 21:10:59ID:8M1gqhPX201名前は開発中のものです。
2008/07/13(日) 03:29:10ID:uUrGa3AK つ 単体テスト
いや出しゃばった 俺はweb系なので実情は判らん
まあロジック側は業種問わずどうグズったところで、
「何々渡したときに何々返す関数作ってー!」しか分業方法ないと思うけど
いや出しゃばった 俺はweb系なので実情は判らん
まあロジック側は業種問わずどうグズったところで、
「何々渡したときに何々返す関数作ってー!」しか分業方法ないと思うけど
202名前は開発中のものです。
2008/07/13(日) 03:29:54ID:edzJ8FGN たぶん、作りかけってのが何処までか分からんけど
目に見えて作りかけとみれるのは殆ど完成間近なのが多いんじゃ。
プログラムの作りかけを動かす=エラーが出ないで動く なので
目に見えて作りかけとみれるのは殆ど完成間近なのが多いんじゃ。
プログラムの作りかけを動かす=エラーが出ないで動く なので
203名前は開発中のものです。
2008/07/13(日) 03:32:16ID:edzJ8FGN http://wiki.game-develop.com/
wikiのチュートリアル→段階的学習でもやってみては
wikiのチュートリアル→段階的学習でもやってみては
204名前は開発中のものです。
2008/07/13(日) 04:56:24ID:tw1/nxGs >>200
そのクラスのインタフェースが分かるならその仮実装を作れば良いでしょ。
プロキシとかスタブって聞いたこと無いかな?
そもそもあなたの言っているテストとは何をどうするテストなのか、
自分でハッキリと認識出来ているのなら人に聞くような問題じゃないと思う。
そのクラスのインタフェースが分かるならその仮実装を作れば良いでしょ。
プロキシとかスタブって聞いたこと無いかな?
そもそもあなたの言っているテストとは何をどうするテストなのか、
自分でハッキリと認識出来ているのなら人に聞くような問題じゃないと思う。
205名前は開発中のものです。
2008/07/13(日) 09:43:53ID:47vlxomf >>200
もし私がプログラマなら、担当部分を動かすための
テストプログラム書いてます。
だから、それを見せてもらったら、大体どんなことができてるのか
把握できるんじゃないかと思います。
早い段階でCVSやSVNによるコード共有にも
慣れておくと幸せになれるかもしれません。
統合テストの段階になってからでないと
全体のMakefileが書けない、
リンク作業もできないのではどうにもなりません。
今のうちからコードを共有して、
常に全体がコンパイル/リンクが可能であることを
確認できる環境作りが云々、、、、、、、、
もし私がプログラマなら、担当部分を動かすための
テストプログラム書いてます。
だから、それを見せてもらったら、大体どんなことができてるのか
把握できるんじゃないかと思います。
早い段階でCVSやSVNによるコード共有にも
慣れておくと幸せになれるかもしれません。
統合テストの段階になってからでないと
全体のMakefileが書けない、
リンク作業もできないのではどうにもなりません。
今のうちからコードを共有して、
常に全体がコンパイル/リンクが可能であることを
確認できる環境作りが云々、、、、、、、、
206名前は開発中のものです。
2008/07/13(日) 09:51:14ID:timDAMYM207名前は開発中のものです。
2008/07/13(日) 10:22:09ID:L3kGAfa0 >>194
作り掛けでも動くように、ゲーム全体を一枚岩ではなくバラして作る。
RPG だったら戦闘・マップ・店・イベントシーンで完全にバラしておいて、
テスト用のメニューからそれぞれ起動できるようにするとかな。
作り掛けでも動くように、ゲーム全体を一枚岩ではなくバラして作る。
RPG だったら戦闘・マップ・店・イベントシーンで完全にバラしておいて、
テスト用のメニューからそれぞれ起動できるようにするとかな。
208名前は開発中のものです。
2008/07/13(日) 10:49:52ID:UM30DsAY 作業分担?
全員が全体を上から下まできっちり把握した上で、
常に連絡を密にし、お互いが何をやってるのか理解しつつ、
各自が必要とみなしたら声かけてどんどん作ったり直したりしていく。
全員が全体を上から下まできっちり把握した上で、
常に連絡を密にし、お互いが何をやってるのか理解しつつ、
各自が必要とみなしたら声かけてどんどん作ったり直したりしていく。
209名前は開発中のものです。
2008/07/13(日) 11:17:51ID:L3kGAfa0210名前は開発中のものです。
2008/07/13(日) 13:47:03ID:DAEU2DrC211名前は開発中のものです。
2008/07/13(日) 13:48:37ID:DAEU2DrC212194
2008/07/13(日) 14:07:22ID:eBw+YtUV213名前は開発中のものです。
2008/07/13(日) 14:19:00ID:sqmPpN2O Cだったらmain()関数書いて実行して、デバッガ等で動き見るかな…
仕事(勿論?非ゲーム)でやってたときも、自分で単体テスト仕様書書いてたんで、
こんなやり方でもOKだったw
個人開発だったらウィンドウなりポリゴンなり目で見てわかる方から書いて、
中身を作っていくので、単体テストらしい単体テストはしないかな…
とりあえず箱を表示するとこ書いて、テストして、
動かすところを書いて、テストして、…ってのはやるけどw
仕事(勿論?非ゲーム)でやってたときも、自分で単体テスト仕様書書いてたんで、
こんなやり方でもOKだったw
個人開発だったらウィンドウなりポリゴンなり目で見てわかる方から書いて、
中身を作っていくので、単体テストらしい単体テストはしないかな…
とりあえず箱を表示するとこ書いて、テストして、
動かすところを書いて、テストして、…ってのはやるけどw
214名前は開発中のものです。
2008/07/13(日) 14:24:18ID:RINNRPdb215名前は開発中のものです。
2008/07/13(日) 15:08:38ID:eBw+YtUV216名前は開発中のものです。
2008/07/13(日) 15:15:30ID:uaqPI4FP >>215
プログラマの数は?
プログラマの数は?
217名前は開発中のものです。
2008/07/13(日) 15:23:34ID:L3kGAfa0 >>215
まぁ、プロジェクトの種類にもよるわな。勘定系とかだとデータ項目と画面の
I/O 決まってれば、各人の作業は依存が少ない(DB に仕様どおりのテスト
データ作れば良い)から、スケールしやすい。
基本的には、プロジェクト全体をいかに疎結合なパーツに分解できるような
設計をするかにかかってる。DB とかメッセージングシステム使う世界は、
そこで切れてることが多いから分けやすい。
まぁ、プロジェクトの種類にもよるわな。勘定系とかだとデータ項目と画面の
I/O 決まってれば、各人の作業は依存が少ない(DB に仕様どおりのテスト
データ作れば良い)から、スケールしやすい。
基本的には、プロジェクト全体をいかに疎結合なパーツに分解できるような
設計をするかにかかってる。DB とかメッセージングシステム使う世界は、
そこで切れてることが多いから分けやすい。
218名前は開発中のものです。
2008/07/13(日) 17:47:09ID:eBw+YtUV >>216
150人はプログラマでした
150人はプログラマでした
219名前は開発中のものです。
2008/07/13(日) 18:56:00ID:UM30DsAY220名前は開発中のものです。
2008/07/13(日) 21:19:15ID:Q/hESmSh 大規模金融システムで、SEの数ってことならありうるが
ゲームのスタッフロールにマが150人も並んでたら壮観だな
ちなみにそれなりの規模だと思われるFFXでメインプログラマが2人
サブプログラマが12人で残りは大半がデザイナー
ゲームのスタッフロールにマが150人も並んでたら壮観だな
ちなみにそれなりの規模だと思われるFFXでメインプログラマが2人
サブプログラマが12人で残りは大半がデザイナー
221名前は開発中のものです。
2008/07/13(日) 21:20:02ID:6QYOrVUt ネトゲじゃねーの?
222名前は開発中のものです。
2008/07/13(日) 22:39:48ID:3VGnVE92 マ150人てどんなネトゲだよ。。。
223218
2008/07/13(日) 23:00:22ID:eBw+YtUV ゲームのプロジェクトじゃないです。
詳細は言えませんが。
ゲームのテストってプログラマがCppUnitみたいの使ってできないですよね。
やはり手動でテスターがテストするんでしょうか。
詳細は言えませんが。
ゲームのテストってプログラマがCppUnitみたいの使ってできないですよね。
やはり手動でテスターがテストするんでしょうか。
224名前は開発中のものです。
2008/07/13(日) 23:23:02ID:UM30DsAY 俺の知る限り、ゲーム開発では基本的にテストは無いです
単体テスト→結合テスト→受け入れテスト、みたいな流れは無い
昔ながらの職人的やり方というと聞こえは悪いですが、
衝突判定とか文字列処理部分のような仕様が明確な箇所なら
自動テストは有効だし実際にやっている会社もあるようだけど、
「ここで光がばーっと集まって、このキャラが独白を始めて、そして背景が宇宙に切り替わっていく」
みたいな仕様書があったとして、それをテストする基準がないし自動テストできません
なので大部分がデバッグチーム頼みです
単体テスト→結合テスト→受け入れテスト、みたいな流れは無い
昔ながらの職人的やり方というと聞こえは悪いですが、
衝突判定とか文字列処理部分のような仕様が明確な箇所なら
自動テストは有効だし実際にやっている会社もあるようだけど、
「ここで光がばーっと集まって、このキャラが独白を始めて、そして背景が宇宙に切り替わっていく」
みたいな仕様書があったとして、それをテストする基準がないし自動テストできません
なので大部分がデバッグチーム頼みです
225名前は開発中のものです。
2008/07/14(月) 00:00:22ID:yOzfOKcB 3Dの衝突判定ライブラリを書いていたときは、単体テスト使いまくりだったぞ。
>224 みたいな場合はどうしようもないけど、表示以前のコアな部分では
単体テストも結構使う
>224 みたいな場合はどうしようもないけど、表示以前のコアな部分では
単体テストも結構使う
226名前は開発中のものです。
2008/07/14(月) 00:02:24ID:IEzc7ZIH グラフィックやサウンドが絡む部分は自動化は難しいけど
ネットワーク部分やスクリプトの読み込み部分なんかは
いくらでも自動化できるっしょ
ネットワーク部分やスクリプトの読み込み部分なんかは
いくらでも自動化できるっしょ
227名前は開発中のものです。
2008/07/14(月) 00:10:58ID:cIaZ6JxY 一人で作ってる分には単体テストに拘る必要はないと思うな。
逆に(自分含めて)しっかり単体テストできるなら、複数PG開発も悪くないと思う。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ようするに他人のコードのデバッグは勘弁w
テンパってる人はバグ処理を後回しにしたり、他に回したがるだろうからな!
逆に(自分含めて)しっかり単体テストできるなら、複数PG開発も悪くないと思う。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ようするに他人のコードのデバッグは勘弁w
テンパってる人はバグ処理を後回しにしたり、他に回したがるだろうからな!
228名前は開発中のものです。
2008/07/14(月) 12:30:06ID:Hnt5WQTk (NetBSDをOSに使ってる)リコーのプリンタの開発チームは
PGだけで1500人だそうです
PGだけで1500人だそうです
229名前は開発中のものです。
2008/07/14(月) 15:33:56ID:xdO9+1xM 数万行の同人ソフトしか作ったことないけど、ゲームってプログラムとしては割合小規模じゃね?
乗っかってるリソースの量がとんでもないだけで。
実際、市販ソフト見てても、絶対に手が出せないというような印象はないなあ。
ゲームシステム(シーン別)、描画系、サウンド系、ツールやエディタ系と分けていけば
それほどカオスな状態にはならないイメージがあるけど。
もちろんプログラマの数の2乗程度の複雑性はあるだろうけど。
見ててもう明らかに絶望的なのは、勘定系とか電子カルテとか。
あと、それなりに腕の立つリードプログラマがいないと今時の3Dゲーム自体作りようがなくて
そいつがほとんどの重要なコード書いてしまってそう。なんとなく。
乗っかってるリソースの量がとんでもないだけで。
実際、市販ソフト見てても、絶対に手が出せないというような印象はないなあ。
ゲームシステム(シーン別)、描画系、サウンド系、ツールやエディタ系と分けていけば
それほどカオスな状態にはならないイメージがあるけど。
もちろんプログラマの数の2乗程度の複雑性はあるだろうけど。
見ててもう明らかに絶望的なのは、勘定系とか電子カルテとか。
あと、それなりに腕の立つリードプログラマがいないと今時の3Dゲーム自体作りようがなくて
そいつがほとんどの重要なコード書いてしまってそう。なんとなく。
230名前は開発中のものです。
2008/07/14(月) 15:36:32ID:Hy149M4+231名前は開発中のものです。
2008/07/14(月) 15:40:51ID:0Th48wDt RPGみたいないろんな要素のあるゲームのプログラミングってどこから手をつけていったらいいですか?
232名前は開発中のものです。
2008/07/14(月) 15:47:11ID:wxUymIt7 お好きなところからどうぞ
233名前は開発中のものです。
2008/07/14(月) 16:22:48ID:Hnt5WQTk MSXのドラクエ2も大学生が一人で全部作ったんだよね
234名前は開発中のものです。
2008/07/15(火) 13:15:33ID:IiJYDS4l RPGっていってもいまだといろんなシステムあるからな〜
古典的なドラクエ初期のように2Dオンリー
チョンゲーに代表される3D使ってるクリックゲー
古典的なドラクエ初期のように2Dオンリー
チョンゲーに代表される3D使ってるクリックゲー
235名前は開発中のものです。
2008/07/15(火) 13:29:25ID:Hl1v93zY236名前は開発中のものです。
2008/07/16(水) 17:02:22ID:WbuXgq6y237名前は開発中のものです。
2008/07/16(水) 17:02:59ID:WbuXgq6y >>231
メモリ管理
メモリ管理
238名前は開発中のものです。
2008/07/17(木) 20:17:04ID:uAQ9zE97 >>231
要素の洗い出し
要素の洗い出し
239名前は開発中のものです。
2008/07/20(日) 02:44:36ID:gpI6Slf5 先人のろくにコメントもないコードの解析だけで一ヶ月ぐらいコーディングもしないってことはありますか?
240名前は開発中のものです。
2008/07/20(日) 02:56:31ID:L2XNyVag241名前は開発中のものです。
2008/07/20(日) 03:05:04ID:x+htBSIe ソースがあるだけマシだよ
アーケード版のバイナリだけ渡されて
「これをPS2に移植してください。ソースは紛失してしまいました。」
と言った大田区の某大手ゲーム会社があったそうな。
アーケード版のバイナリだけ渡されて
「これをPS2に移植してください。ソースは紛失してしまいました。」
と言った大田区の某大手ゲーム会社があったそうな。
242名前は開発中のものです。
2008/07/20(日) 03:08:22ID:ZbM+kRVz >>241
すみません… それ、たぶんウチだ orz
すみません… それ、たぶんウチだ orz
243名前は開発中のものです。
2008/07/20(日) 03:39:46ID:18o8S9Zj 最悪だなそれ
MAMEでも進呈したほうがいいな
MAMEでも進呈したほうがいいな
244名前は開発中のものです。
2008/07/20(日) 15:36:02ID:gpI6Slf5 オブジェクト指向のくずれてるウンココードに出会ったらどうしますか?
245名前は開発中のものです。
2008/07/20(日) 17:18:51ID:g88tpUo2 見なかったことにする
246名前は開発中のものです。
2008/07/20(日) 17:43:16ID:1Zabkxz6 それ俺だな。
どうやれば良いか分からないから、手探りで書いてる(´・ω・`)
どうやれば良いか分からないから、手探りで書いてる(´・ω・`)
247名前は開発中のものです。
2008/07/20(日) 22:53:25ID:zgBZw03q シングルトンで作ったクラスが2つや3つもインスタンスを生成することになったら破綻しない?
248名前は開発中のものです。
2008/07/20(日) 23:02:17ID:Tcsf7iZJ >>247
各フィールドやメンバ関数がまるごとstatic宣言されていない限りは、破綻しないと思うよ。
数に制限のあるリソース(or デバイス)を取り扱ってる場合は、セマフォか何かで排他処理とかロックとかが必要になるかもしれないけど。
各フィールドやメンバ関数がまるごとstatic宣言されていない限りは、破綻しないと思うよ。
数に制限のあるリソース(or デバイス)を取り扱ってる場合は、セマフォか何かで排他処理とかロックとかが必要になるかもしれないけど。
249名前は開発中のものです。
2008/07/20(日) 23:02:30ID:USb+9tXO どういう意味?
シングルトンが2つも3つもあるならそれはシングルトンじゃないし
シングルトンのインスタンスがさらにインスタンスを生成するようなメソッド持ってても別に破綻しないけど?
シングルトンが2つも3つもあるならそれはシングルトンじゃないし
シングルトンのインスタンスがさらにインスタンスを生成するようなメソッド持ってても別に破綻しないけど?
250名前は開発中のものです。
2008/07/21(月) 01:05:54ID:9zclfNbN >>247の文章が破綻
251名前は開発中のものです。
2008/07/21(月) 14:17:23ID:Y7Mzeak+ コメントにシングルトンと書かれてるのに2つも3つもインスタンスが
出来てる、辞めた先輩の残した謎コードって事ですね。わかりませn
出来てる、辞めた先輩の残した謎コードって事ですね。わかりませn
252名前は開発中のものです。
2008/07/21(月) 18:53:57ID:9zclfNbN XBOX360, PS3, Wii 売れ行きに関係なく、開発しやすいプラットフォームはどれ?
253名前は開発中のものです。
2008/07/21(月) 18:54:50ID:NGr1sFSW 箱○
254名前は開発中のものです。
2008/07/21(月) 23:51:13ID:yo6BY71C 箱○は個人で十分開発できるからなぁ
255名前は開発中のものです。
2008/07/22(火) 00:00:52ID:grvq6f3A 箱○ 天国
Wii 普通
PS3 言わせるなw
という感じか?
Wii 普通
PS3 言わせるなw
という感じか?
256名前は開発中のものです。
2008/07/22(火) 00:03:34ID:9zclfNbN >>255
詳しく
詳しく
257名前は開発中のものです。
2008/07/22(火) 00:08:34ID:zCVKhHD7 お前ら本当に3機種の開発ツール使ったことあるのかとw
258名前は開発中のものです。
2008/07/22(火) 00:21:20ID:inlA4ozd なんで個人開発限定なんだよ
259名前は開発中のものです。
2008/07/22(火) 00:35:03ID:88jYUtHh XNAのことを言ってると予想
260名前は開発中のものです。
2008/07/22(火) 02:21:06ID:TRIzaodv XNAの市販ゲームが出たってニュースは前に見た気がするけど
実際どんなもんなんだろ
実際どんなもんなんだろ
261名前は開発中のものです。
2008/07/22(火) 02:44:01ID:kfP9Fty3 サターンのSBL,SGLしか使ったこと無い
262名前は開発中のものです。
2008/07/22(火) 02:45:19ID:zCVKhHD7 360(XNA)、Wii(インターネットチャンネル)、PS3(YellowDogLinux)という話?
263名前は開発中のものです。
2008/07/22(火) 16:12:48ID:k5fUsZQo Wiiはインターネットチャンネルどころじゃない
264名前は開発中のものです。
2008/07/22(火) 18:29:14ID:c7QeI/ED ゲーム機はDirectXを使うの?
265名前は開発中のものです。
2008/07/22(火) 18:36:04ID:Jekk8SUv DirectXはMSだけ
あ、Dreamcastという例外があるか
あ、Dreamcastという例外があるか
266名前は開発中のものです。
2008/07/22(火) 20:52:26ID:6od3yLDu ゲーム機ではないが、アーケードの基盤がWindows系というパターンはあるな。
DirectXそのものを使ってるかどうかは知らないが。
DirectXそのものを使ってるかどうかは知らないが。
267名前は開発中のものです。
2008/07/25(金) 15:29:12ID:9vpYBrtF やってみて、無理と判断され、チームを外されることってある?
268名前は開発中のものです。
2008/07/25(金) 20:06:41ID:66T6bhjF269名前は開発中のものです。
2008/07/26(土) 01:19:05ID:+2uolo1R いつしかスレ違いな話題ばかりになってるな。路線復帰しようぜ。
270名前は開発中のものです。
2008/07/26(土) 02:28:02ID:Esaqa0cW アドベンチャーゲームの画面クリックやら動的に変化しまくるコマンドとかはどうやって管理してるんだね?
271名前は開発中のものです。
2008/07/28(月) 18:13:52ID:9GhNVVJ3 前者は状態フラグの配列なり持っておけば十分だろ
後者はなんだ?状態フラグ読んで条件分岐すればコマンド変化はいくらでも管理できるでしょ
それともzorkみたいなやつかな。それだと構文解析が肝だろうなあ
後者はなんだ?状態フラグ読んで条件分岐すればコマンド変化はいくらでも管理できるでしょ
それともzorkみたいなやつかな。それだと構文解析が肝だろうなあ
272名前は開発中のものです。
2008/07/29(火) 14:37:45ID:kHD6g876273名前は開発中のものです。
2008/07/31(木) 18:14:30ID:ucHp1Nqp メニューコマンドってみんなクラス化しているもんなのかな?
メニューオブジェクトを生成してどうこうみたいな。
メニューオブジェクトを生成してどうこうみたいな。
274名前は開発中のものです。
2008/07/31(木) 21:20:41ID:Gc2qBZ+R ベタコードで記述したり構造体・配列のままより
クラスにしたほうがアクセスの統一をはかれる分いいかなぁ。
まーメニュー触るコードが一箇所ならどっちでもいいんでね?
ようはクラスにするしないじゃなくて
複雑さを無くしたり楽するためにどうするかだから。
クラスにしたほうがアクセスの統一をはかれる分いいかなぁ。
まーメニュー触るコードが一箇所ならどっちでもいいんでね?
ようはクラスにするしないじゃなくて
複雑さを無くしたり楽するためにどうするかだから。
275名前は開発中のものです。
2008/07/31(木) 21:26:22ID:NXR7vyyv フロントコントローラーパターンとコマンドパターンでやります。
276名前は開発中のものです。
2008/07/31(木) 21:38:09ID:A+bu5iPx メニューによるけど、FF風のメニューは別シーンにして、その中の一つ一つのコマンドは
だいたい同じインターフェースを実装してる。
だいたい同じインターフェースを実装してる。
277名前は開発中のものです。
2008/08/01(金) 00:01:16ID:yD3o9/Uf クラスメンバって全部privateにしてgetterでしか取得できないようにするべき?
privateにしたメンバをもつクラスを保持しているクラスから、そのprivateメンバにアクセスしたいときに
get()で呼び出すのが面倒なんだが・・・・publicならそのまま呼び出せるし
privateにしたメンバをもつクラスを保持しているクラスから、そのprivateメンバにアクセスしたいときに
get()で呼び出すのが面倒なんだが・・・・publicならそのまま呼び出せるし
278名前は開発中のものです。
2008/08/01(金) 00:11:49ID:yp70Uz6t279名前は開発中のものです。
2008/08/01(金) 00:14:41ID:GzWnlC6Z280名前は開発中のものです。
2008/08/01(金) 00:22:47ID:z2aBgJTr 全部て
全部にgetter/setter作る意義って、メンバごとに独自処理必要な場合だろ
そういうの不要ならpublicなり言語の提供するアクセサメソッド簡略化機能とうかで構わんて
全部にgetter/setter作る意義って、メンバごとに独自処理必要な場合だろ
そういうの不要ならpublicなり言語の提供するアクセサメソッド簡略化機能とうかで構わんて
281名前は開発中のものです。
2008/08/01(金) 00:28:14ID:4UGZmRTZ 排他制御や状態確認が不要ならどうでもいいかもだけど
コード書くのがマンドイだけなんじゃ?
まっしなIDEやプロパティのある言語つかうとかかな。
コード書くのがマンドイだけなんじゃ?
まっしなIDEやプロパティのある言語つかうとかかな。
282名前は開発中のものです。
2008/08/01(金) 00:32:32ID:GzWnlC6Z >>280
例えば、「すばやさ」と「回避率」と「盾の大きさ」というメンバ変数があったとする。
仕様変更により、これら三つを「守備力」に統合しようとしたとき、
各メンバ変数へのアクセスが全てアクセサメソッド経由なら、
そのクラスの変更だけで終わってしまう(ごまかせる)というメリットがあるよ。
例えば、「すばやさ」と「回避率」と「盾の大きさ」というメンバ変数があったとする。
仕様変更により、これら三つを「守備力」に統合しようとしたとき、
各メンバ変数へのアクセスが全てアクセサメソッド経由なら、
そのクラスの変更だけで終わってしまう(ごまかせる)というメリットがあるよ。
283名前は開発中のものです。
2008/08/01(金) 00:36:38ID:z2aBgJTr まて、そら元々アクセサの設計が統合可能だった場合だろ
すばやさにアクセスしても盾の大きさにアクセスしても「守備力」が変わるって設計で良いなら構わんが……
守備力を出すクラスなりが仲介して、他のパラメータを元から束ねてた場合の話って事かな。
ちょっとエスパー疲れるぞ?
すばやさにアクセスしても盾の大きさにアクセスしても「守備力」が変わるって設計で良いなら構わんが……
守備力を出すクラスなりが仲介して、他のパラメータを元から束ねてた場合の話って事かな。
ちょっとエスパー疲れるぞ?
284名前は開発中のものです。
2008/08/01(金) 00:47:59ID:GzWnlC6Z >>283
まあ、そういうこともあるさ(汗)
ここはお茶を濁しながら、オブジェクト間の結合を弱めましょうとか何とか言って、逃げようかな。
あと、全部アクセサメソッドつけたくなる理由は、Java beansに対応させるってのもあるな。
シリアライズしてXMLでデータを吐けるとか特典があったはず(要らない特典かも)。
まあ、そういうこともあるさ(汗)
ここはお茶を濁しながら、オブジェクト間の結合を弱めましょうとか何とか言って、逃げようかな。
あと、全部アクセサメソッドつけたくなる理由は、Java beansに対応させるってのもあるな。
シリアライズしてXMLでデータを吐けるとか特典があったはず(要らない特典かも)。
285名前は開発中のものです。
2008/08/01(金) 00:54:19ID:b/gVwGdZ getterもsetterも持ってるメンバってのは、結局外から値をいじれるわけだから、
publicにした方が使う側は書きやすくでいいんじゃないの?と思うわけ。
ああ、でもsetterに値のチェックとか入れれるのか・・・・
publicにした方が使う側は書きやすくでいいんじゃないの?と思うわけ。
ああ、でもsetterに値のチェックとか入れれるのか・・・・
286名前は開発中のものです。
2008/08/01(金) 01:01:50ID:b/gVwGdZ しかもget()で取得するのが配列だったりすると、
取得側で配列格納用の変数も用意しないと取得した配列の要素にアクセスできないし、
非常に手間。
取得側で配列格納用の変数も用意しないと取得した配列の要素にアクセスできないし、
非常に手間。
287名前は開発中のものです。
2008/08/01(金) 01:02:58ID:tFL87oCT とりあえずpublicで書いていって、
気が向いたらprivateにして、
それまで直接アクセスしたるところを、
大河の流れのように涙を流しながら直せば無問題。
気が向いたらprivateにして、
それまで直接アクセスしたるところを、
大河の流れのように涙を流しながら直せば無問題。
288名前は開発中のものです。
2008/08/01(金) 01:07:26ID:b/gVwGdZ289名前は開発中のものです。
2008/08/01(金) 01:09:03ID:b/gVwGdZ 特にゲームだと毎フレームごとにいろんなものを描画するから、描画要素が多いとそれだけ呼び出しも増えるわけで。
290名前は開発中のものです。
2008/08/01(金) 01:19:38ID:ua9U6ROu c++での話だが速度はインライン展開されるの期待できるから問題ないし
メソッドが多くて中で使いまくるならclassで隠蔽。メソッド内でもget、set呼ぶ。
データの集合でしかなくメソッドが簡単な処理しかないならstructでpublic化かな。
コンストラクタ、コピーコンストラクタ、代入、比較演算あたりまでならstructで。
メソッドが多くて中で使いまくるならclassで隠蔽。メソッド内でもget、set呼ぶ。
データの集合でしかなくメソッドが簡単な処理しかないならstructでpublic化かな。
コンストラクタ、コピーコンストラクタ、代入、比較演算あたりまでならstructで。
291名前は開発中のものです。
2008/08/01(金) 01:32:56ID:b/gVwGdZ >>290
こういうのって、センスが必要ですね・・・・。
ちょっと気になった事があるんですが、
自分のクラスのpublic関数が、内部で自分のクラスのprivateなメンバを使う場合、
わざわざgetterで呼び出して使う必要はないですよね?
class Foo{
private int a;
public int get(){ return a;}
public int calc(){
return get() * 2;
}
このようなcalc()の書き方に利点はあるのでしょうか?
こういうのって、センスが必要ですね・・・・。
ちょっと気になった事があるんですが、
自分のクラスのpublic関数が、内部で自分のクラスのprivateなメンバを使う場合、
わざわざgetterで呼び出して使う必要はないですよね?
class Foo{
private int a;
public int get(){ return a;}
public int calc(){
return get() * 2;
}
このようなcalc()の書き方に利点はあるのでしょうか?
292名前は開発中のものです。
2008/08/01(金) 02:26:05ID:ua9U6ROu getter,setterがpublicなら外部参照する可能性があるということで
内部だけで使うprivateメンバ変数と意識して区別できるとか
関数内のローカル変数と名前が被ってもメンバ変数を指してるのが一目瞭然とか。
命名規則で見分けられるようにするのが良いんだろうけどなるべくそうしてる。
内部だけで使うprivateメンバ変数と意識して区別できるとか
関数内のローカル変数と名前が被ってもメンバ変数を指してるのが一目瞭然とか。
命名規則で見分けられるようにするのが良いんだろうけどなるべくそうしてる。
293名前は開発中のものです。
2008/08/01(金) 03:52:45ID:eorE7C0S getterロボ
294名前は開発中のものです。
2008/08/01(金) 04:12:11ID:gQhqelIh メンバ変数の存在が setter/getter の追加みたいに public 部分に影響するのがおかしいんだよ。
まず public なインターフェースが決まって、その後で必要なメンバ変数を private で考えるのが筋だろ。
まず public なインターフェースが決まって、その後で必要なメンバ変数を private で考えるのが筋だろ。
295名前は開発中のものです。
2008/08/01(金) 18:37:49ID:YDkT93Ih >>294
今まで作ってきたゲームの焼き直しなら、現実的なやり方だね。うん。
今まで作ってきたゲームの焼き直しなら、現実的なやり方だね。うん。
296名前は開発中のものです。
2008/08/01(金) 19:02:25ID:m4Vy5Xwk 理想と現実はだいぶ違うよな
個人製作なら気に入らなければ壊して作りなおせるからそれでもいいけど
それにこだわって完成させられない場合が多い気がする
個人製作なら気に入らなければ壊して作りなおせるからそれでもいいけど
それにこだわって完成させられない場合が多い気がする
297名前は開発中のものです。
2008/08/01(金) 20:43:12ID:mQpnHwPh インターフェース中心の設計でプログラミングするんだったら
プライベートメンバ変数にはアクセッサを用意すべき。
単なるクラスだけでプログラムするんだったら、位置とか角度とか見たいなアクセス頻度の高い
メンバはパブリックのほうが良いかと思う。
プライベートメンバ変数にはアクセッサを用意すべき。
単なるクラスだけでプログラムするんだったら、位置とか角度とか見たいなアクセス頻度の高い
メンバはパブリックのほうが良いかと思う。
298名前は開発中のものです。
2008/08/02(土) 00:14:18ID:n2w2ONnP ぶっちゃけ、片っ端からget/setにしたほうが、悩む時間を削減できて、完成が早まる(トイイナw
299名前は開発中のものです。
2008/08/02(土) 00:25:25ID:MidBaG0Q しかしgetやsetが乱れ飛んで読みづらくなることも
300名前は開発中のものです。
2008/08/02(土) 06:50:04ID:xZ8r6Jdx >>299
プロパティが欲しいと。
プロパティが欲しいと。
301名前は開発中のものです。
2008/08/02(土) 11:52:40ID:eytLWJfu C#はそういう意味ではスマートだなぁ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★3 [ニョキニョキ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに [ニョキニョキ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 中国人「『日本は危ないから行かないように』と言われたが、日本に来たらとても安全だった」 [お断り★]
- 石破前総理「どうすれば台湾有事にならないかを考えるべき」★2 [1ゲットロボ★]
- 【高市悲報】来年、習近平主席がアメリカに「国賓」として訪米。どうするんだよ高市・・・アメリカも敵に回すのか? [483862913]
- 人を攻撃しといて反撃されたら被害者面する奴w
- 【高市悲報】トランプおやびん「偉大な指導者である習近平首席、米国は中国にとっての台湾問題の重要性を理解しています」 [115996789]
- トランプおやびん「米中関係は極めて強固」高市早苗「」 [834922174]
- AIの方が上だけど人間がやるから意味があるとする精神論
- 【画像】ブラジルの19歳超美人まんさん、同時間帯に異なる男性が膣内射精したため父親が異なる双子を出産 [776365898]
