内部のメールシステムに似たアプリケーションを設計する必要があります。しかし、これは単なるコースプロジェクトです。ネットワーキングは必要ありません。教授は議論されたデータ構造を働かせるだけです。しかし、私はアプリケーションの設計方法を決めるのが難しかった。私が何をしなければならないかを簡単に説明し、私の考えを分かち合うつもりです。デザインパターンの選択
これはコマンドラインベースのアプリケーションであることがわかっているといいと思います。 GUIは関係ありません。
内部メールシステムは、5つの可能な状態で構成されています。一般、管理者、ユーザー、モデレーター、および作成します。一度に1つの状態にすることは可能です。アプリケーションが起動すると、デフォルトでGeneral状態になります。この状態で唯一可能なコマンドは、他のアカウント(User、Admin、Mod)にログインすることです。ユーザーは、自分のメッセージを読む、新しいものを他のユーザーに送信する(作成する)、メッセージを削除する、ログアウトする、さらにカップル。ユーザーは、ComposeまたはGeneralの2つの状態のいずれかに変更できます。 Compose状態にするには、ユーザーはcompose
コマンドを使用する必要があります。この状態では、他のユーザーにメッセージを作成します。メッセージの作成が終了すると、ユーザー状態に戻ります。ユーザーが一般に戻ることができる唯一の方法は、ログアウトすることです。
Admin(Userの動作を継承します)とModはほとんど同じです。彼らも州を変えることができます。ここで
は、私がデザインパターンに新たなんだ状態
General |----->Admin
| |---->User(limited)
| |---->Compose
|
|----->Moderator
|
|----->User
| |---->Compose
を変更することが可能であるかの概要です。最近私は彼らについて多くのことを読んできました。しかし、これを実装するのは初めてです。私の提案の一つが奇妙に思えるなら、私に知らせてください。
ステートパターンは素晴らしいアイデアのようです。私はオブジェクトの状態を動的に変更できます。しかし、すべての州に同じ方法があるわけではありません。管理者には、ユーザーよりも多くの方法があります。管理者には、管理者またはユーザーのいずれの方法もありません。あなたはGeneralを使ってログインすることしかできません。私はこれがState Patternを使用する能力を制限すると思います。あなたは他のパターンについて何か提案していますか?
私が持っていたもう一つのアイデアは、次のようなものでした。私は州を昇降することができるので、私はスタックとして見ることができます。たとえば、作成モードのユーザーなどです。
\ /
| Compose | <---- top (current state)
| User |
| General |
-----------
これを実装する方法についてご意見はありますか?それも可能ですか?私はJavaに最も慣れていますが、C++や擬似コードは問題ありません。
もし私が知っているのであれば、これを実装している現代のサンプルコードが理想的にはC#で好きです!前にこれを実装しましたか?乾杯 – Berryl