同じ「状態」だが、関心事が異なる。
- state: オブジェクトに内在し、そのオブジェクトの振る舞いを規定する。
- status: オブジェクトの利用者のためのセマンティックな情報。
つまり、state はオブジェクトそのものの方に関心があるのに対し、status はオブジェクトそのものではなく、利用者がそれとどうインタラクションするかの方に関心がある。
ただし、実際はどちらに関心があるかは白黒ではなくグラデーションである場合が多いので、命名するときはどちらにより比重があるかで決めればよい。
例
state
- 固体 / 液体 / 気体
- プロセスの running / sleep / stopped / zombie, etc.
status
- UIにおいて、利用者に対して「状態」を示すものは必ず status
- status indicator, status bar, status lamp
- HTTP response status
- 駐車場の「空」/「満」
- タスクの todo / in progress / done
割とどちらでもいいもの
- 記事の draft / published