現在受けているトレーニング スキームの一環として、単純なコマンド ライン ベースのヘルプデスク アプリケーションの開発を任されています。このプロジェクトのポイントは、デザイン パターン、SOLID 原則、MVC アーキテクチャなどを使用する能力を開発することです。
MVC 構造を柔軟に保つ方法を理解するのに問題があります。これが私のコードの一部のサンプルです...
public class RegisterController
{
View view;
RegisterModel registerModel;
public RegisterController()
{
registerModel = new RegisterModel();
}
public void processRegistration(String username, String password, Role role)
{
if(registerModel.isRegisterable(username, password))
{
User newUser = new User(username, password, role);
registerModel.registerUser(newUser);
view = new LoginView(new LoginController());
}
else
{
System.out.println("ERROR during registration.");
view = new MainView(new MainController());
}
view.startView();
}
}
理想的には、モデルやコントローラーを変更せずに、後日アクセスして、Web ページなどの別のユーザー インターフェイス (ビュー クラス) に置き換えることができるようにしたいと考えています。ただし、現時点では、コマンド ラインの「MainView」および「LoginView」クラスの具体的な実装をコーディングしていることがわかります。
このコントローラー コードをより柔軟にし、最小限のコード変更で別のユーザー インターフェイスに置き換えるにはどうすればよいでしょうか? 別の UI に変更しても、コントローラーのコードが同じままであると期待するのは非現実的ですか?