0

ユーザーがフォームに入力して送信できる Web ページがあります。

 <form id=email...
 send email ....
 <input type="hidden"id="method" value="sendemail"...
 />
  .............

 <form id=writeindatabase
 some data
      ............
 <input type="hidden"id="method"  value="writeindatabase"...

サーバー側:

if (method.compareTo("sendemail")==0) {
 doSendEmail(....
}
else if (method.compareTo("writeindatabase")==0) {
  doWriteInDatabase(....

 ..............................

私はこのアーキテクチャが好きではありません。オープン クローズの原則に違反しているからです。これをリファクタリングして修正することは可能ですか? ありがとう。

4

1 に答える 1

2

構造化された安全な方法でリフレクションを使用するか、同様にコマンド パターンを使用できます。

  • リフレクション:受け入れ可能な各メソッド名をリフレクションオブジェクトMap<String, Method>にマップするを作成します。Methodinvoke

  • コマンド パターン:Map<String, Callable<?>>上記と同様の方法で a を使用します。適切なサービス メソッドを呼び出しCallableて実装する匿名内部クラスとして をインスタンス化します。call

于 2013-02-21T14:43:54.920 に答える