1

これは直接的なプログラミング関連の質問ではなく、アーキテクチャに基づく質問である可能性があります。私が直面している課題は、Android アプリケーションをいくつかの部分に分割して、高度に構成できるようにすることです。さまざまな顧客の要求に対応したいのですが、このアプリケーションは Google Play でリリースされるべきではないことに注意してください。今日、私のアプリケーションには、一種の標準的で構成可能なコンポーネントではないコンポーネントがいくつかあります。これらのコンポーネントの例は、Slidemenuを備えたActionbarSherlockです。下の図は、うまくいけばあなたのアイデアを与える

ここに画像の説明を入力

注:Workflow 2Workflow 3には、まったく異なるロジックとレイアウトがあります。

私のロジックの一部は既に処理されています。別のトランザクションを送信する方法があります。トランザクションのタイプは myemailまたは awebservice

これを処理する方法は、次を実装することinterfaceです。

public interface ISender {
    public abstract int send(Context c, String attachmentPath, String identifier); 
}

オブジェクトを返すSenderFactoryタイプのメソッドを持つクラスがあります。ISenderISender

public static ISender createSender(Context context) throws InvalidWorkflowException   {

  if(WorkflowChooser.GetWorkflow().equals("mail")) 
      return new MailSender();
  else if(WorkflowChooser.GetWorkflow().equals("webservice")) 
      return new WebserviceSender();
  else
    throw new InvalidWorkflowException("The Application doesn't support this way of transfering cases"); 

}

このメソッドは私のCreateTransactionクラスから呼び出されます

    public int createTransaction(String pcn, String fileName) throws MailException {

        try
        {
            ISender s = SenderFactory.createSender(context);
            sent = s.send(context, fileName, pcn); 
        } 
        catch(InvalidWorkflowException e) {
            _log.error(e.getMessage());
        }
        return sent;
    }
}

xml-fileこのように、アプリケーションは、ビルドに含まれている に基づいて、使用するトランザクションのタイプを決定します。

お気づきかもしれませんが、この長い投稿を読んでいただければ、これをプロジェクト全体に適用して、ロジックだけでなく、UIよりコンポーネントベースにしたいと考えています。ベストプラクティスとは何なのだろうか、これを行うための推奨される方法はありますか? 以前のプロジェクトの例はありますか?

4

0 に答える 0