1

这可能不是直接与编程相关的问题,而是基于架构的问题。我面临的挑战是将我的 android 应用程序分成几部分,因此它是高度可配置的。我想做这个来处理不同的客户需求,注意这个应用程序不应该在 Google Play 中发布。今天我的应用程序有一些组件将是标准的而不是可配置的组件。这些组件的示例是带有SlidemenuActionbarSherlock。下面的插图希望能给你这个想法

在此处输入图像描述

注意:Workflow 2并且Workflow 3具有完全不同的逻辑和布局。

我的一些逻辑已经处理,我有一个发送不同交易的方法。交易类型可以是 myemail或 awebservice

我处理这个问题的方法是实现一个interface

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

我有一个类SenderFactory,其方法的类型ISender将返回一个ISender对象:

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