以下の投稿。
http://dixq.net/forum/viewtopic.php?f=3&t=18945
存在理由が書かれているのに、
Taskにまとめる理由が分からないとは。
やれやれです。
へにっくすの掲示板日記
基底クラスの存在理由?
Re: 基底クラスの存在理由?
いや,私には,"存在理由"はそこには書いていないように見えましたよ.
「同じメソッドを持っているね → Taskという基底を作ろう」
とだけ書かれているけども,その理由の説明は無くないですか?
BaseSceneについては具体的に用いられているのに対して
Taskは「単に継承してあるだけ」なので,
「このTaskってのは不要なのでは?」という話は理解できます.
「同じメソッドを持っているね → Taskという基底を作ろう」
とだけ書かれているけども,その理由の説明は無くないですか?
BaseSceneについては具体的に用いられているのに対して
Taskは「単に継承してあるだけ」なので,
「このTaskってのは不要なのでは?」という話は理解できます.
Re: 基底クラスの存在理由?
> usaoさん
んー
使う側からすれば、なぜわざわざ宣言する必要あるの?
となるのでしょうか。
個人的には使い道がなくとも、ちゃんと意図が分かるような仕組みを予め構築しておく、
というのがクセになってるものでして。
考え方の違いですかねえ。
んー
使う側からすれば、なぜわざわざ宣言する必要あるの?
となるのでしょうか。
個人的には使い道がなくとも、ちゃんと意図が分かるような仕組みを予め構築しておく、
というのがクセになってるものでして。
考え方の違いですかねえ。
Re: 基底クラスの存在理由?
この説明を読むと,外形的に同じメンバ関数を持っているからTaskという基底クラスを作ったと読めてしまうのですが。新・ゲームプログラミングの館 sp.6 メニュー画面の作り方 (C++編) さんが書きました:SceneMgr、Game、Menu、Configはすべて「Initialize、Finalize、Update、Draw」という共通のメソッドを持っていました。
そこで、「Task」というすべてのクラスの元となる基底クラスを作ります。
さらに、Game,Menu,Configは同じ操作が重複していました。
そこで、「BaseScene」というシーンの抽象クラスを作ります。
この方法による基底クラスの作成というのは,C++系のOOにおいて,大抵の場合は悪手だと思うのですが。
でもって,Taskクラスの存在意義に関して私は疑義派ですね。
BaseScene is Taskかもしれないけれども,SceneMgr is Taskか,その2つの「Task」の役割は同じか,と考えると違う気がします。
Re: 基底クラスの存在理由?
> YuOさん
>> 大抵の場合悪手
振る舞いをもとに考えていない(目的重視じゃなくて手段重視)から、ということでよいでしょうか。
プログラミングの館に関しては初心者向けということもあるから、
そういう説明なのかなーと軽く流してましたが。
>> その2つの「Task」の役割は同じか,と考えると違う気がします。
SceneMgr has Taskの方がしっくりくるという感じ・・・?
そういう説明されると確かにTaskの存在理由が薄い(BaseSceneがあるから)ですね。
管理人さんごめんなさい 笑
>> 大抵の場合悪手
振る舞いをもとに考えていない(目的重視じゃなくて手段重視)から、ということでよいでしょうか。
プログラミングの館に関しては初心者向けということもあるから、
そういう説明なのかなーと軽く流してましたが。
>> その2つの「Task」の役割は同じか,と考えると違う気がします。
SceneMgr has Taskの方がしっくりくるという感じ・・・?
そういう説明されると確かにTaskの存在理由が薄い(BaseSceneがあるから)ですね。
管理人さんごめんなさい 笑
最後に編集したユーザー へにっくす on 2017年3月16日(木) 05:28 [ 編集 6 回目 ]