基本クラスの代わりにインターフェースを使用するために、アプリケーション内のいくつかのクラスをリファクタリングしています。これまでに作成したインターフェイスは次のとおりです。
- すべての Item オブジェクトによって実装される ICarryable
- すべての Actor オブジェクトによって実装される IActable
- 一部の Item サブクラスによって実装された IUseable
- 一部の Item サブクラスによって実装される IWieldable
主要な基本クラスは引き続き Item と Actor であることがわかります。これらは両方ともマップ上に配置されているという点で共通のインターフェイスを持っているため、Location プロパティがあります。Map は、オブジェクトが Actor か Item かを気にするべきではないので、そのためのインターフェイスを作成したいと思います。インターフェースは次のようになります
public interface IUnnameable {
event EventHandler<LocationChangedEventArgs> LocationChanged;
Location Location { get; set; }
}
それは問題ありませんが、このインターフェースを何と呼ぶべきか思いつきません。IMappable は少し不自由に思えます。何か案は?