解決したい問題
- あるクラスはいくつかのステートを持つが、汎用的にするために多くのステートを定義すると、使わない場面も増えるしメンテが大変なので、継承を使って分けたい。
けれどもenumは動的に生成するのがあまり得意ではない。 - 特定のクラスとその継承クラスでなら共通化された固定値にアクセス可能でかつ継承したクラス自身で追加の定数定義をおこなえないものか。
- ついでにいうと、Switch()の分岐でも使いたい。
enumは継承できない
そもそも継承するつもりはなかったのだけれど、他の言語では継承できるものもあるようで、ちょっとうらやましく思ったり。
C++とかJavaとか?
構造体も継承できない
構造体も同様でした。
クラス作ろうか
というわけで定数のみ保持するクラス作成をすることに。
で色々迷ったあげくに採用したのは次のような形。
const と static
なぜstaticではないか。staticだと継承不可だしswitchで使えないから。
EMI MUSIC JAPAN INC. (2004-04-01)
売り上げランキング: 327,129
売り上げランキング: 327,129