2017-02-24 5 views
0

私はゲームプロジェクトを持っており、 "スキルを使用する"システムが必要です。サブカテゴリの呼び出し方法を調整する方法

私はABaseSkillMotionクラスを作成し、スキルモーション終了時にSkilEnd()を呼び出します。

しかし、ABaseSkillMotionでは、すべてのサブカテゴリクラスがSkillEnd()を呼び出すことはわかりません。

私は "property void SkillEnd()"メソッドしか作成できません。サブカテゴリを使用します。

私はサブカテゴリの呼び出し方法を規制することはできません。他のプログラマーは、終了時にSkillEnd()を呼び出す必要性を知らない。

そう...

は、任意のデザインパターンは、メソッドを呼び出すためにサブカテゴリを調節することができることがありますか?

public class A{ 
    protected void onEndMethod(){ 
     //end ! 
    } 
} 


public class B : A{ 
    void Update(){ 
     //need call onEndMethod() when finish; 
    } 
} 

PS:他に最後の時間が必要BのコールonEndMethod()は、タイムアウトになるときBクラスは、何回も更新します。

ありがとうございます!

+2

「サブカテゴリ」とは、継承したクラスを意味しますか? – Icemanind

+1

https://en.wikipedia.org/wiki/Software_design_pattern#Behavioral_patternsのリストを見て、何も役に立たないことが分かったので、あなたの質問を編集して、正確に何を探しているのか、そして標準パターンがあなたのケースをカバーしていない。 –

+0

@AlexeiLevenkov - 私は彼が[Template Method Pattern](https://en.wikipedia.org/wiki/Template_method_pattern)を望んでいると思います。 – Icemanind

答えて

1
public abstract class A{ 
    protected void onEndMethod(){ 
     //end ! 
    } 
    protected void Update(){ 
     DoUpdate(); 
     onEndMethod(); 
    } 
    protected abstract void DoUpdate(); 
} 


public class B : A{ 
    protected override void DoUpdate() 
    { 
     // B class specific code 
    } 
} 
+0

お返事ありがとうございます。しかし、私はクラスがBの更新終了時刻を知らないことを意味しています。 毎回の呼び出しではありませんonEndMethod() –

関連する問題