基于组件的android应用

基于组件的android应用,android,Android,这可能不是一个与编程直接相关的问题,而是一个基于体系结构的问题。我面临的挑战是将我的android应用程序分成几个部分,以便它具有高度可配置性。我想这样做,以处理不同的客户需求,请注意,这个应用程序不应该在谷歌播放发布。今天,我的应用程序有一些组件是标准的,不可配置的组件。这些组件的示例包括。下面的插图希望能给你一个想法 注意:工作流2和工作流3具有完全不同的逻辑和布局 我的一些逻辑已经被处理,我有一个发送不同事务的方法。交易类型可以是我的电子邮件或Web服务 我处理这个问题的方法是实现一个接口

这可能不是一个与编程直接相关的问题,而是一个基于体系结构的问题。我面临的挑战是将我的android应用程序分成几个部分,以便它具有高度可配置性。我想这样做,以处理不同的客户需求,请注意,这个应用程序不应该在谷歌播放发布。今天,我的应用程序有一些组件是标准的,不可配置的组件。这些组件的示例包括。下面的插图希望能给你一个想法

注意:工作流2和工作流3具有完全不同的逻辑和布局

我的一些逻辑已经被处理,我有一个发送不同事务的方法。交易类型可以是我的电子邮件或Web服务

我处理这个问题的方法是实现一个接口:

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

此方法是从我的CreateTransaction类调用的

这样,我的应用程序将根据构建中包含的xml文件决定使用哪种类型的事务


正如您可能已经发现的,如果您阅读了这篇长篇文章,我想将其应用到我的整个项目中,不仅应用到逻辑上,而且应用到UI上,使其更加基于组件。我想知道什么是最佳实践,有什么推荐的方法吗?有人有以前项目的例子吗

时间到了。你在这方面成功了吗?@joaquin我还没有尝试过,但我已经使用过Autofac和其他IoC容器。看看国际奥委会
public interface ISender {
    public abstract int send(Context c, String attachmentPath, String identifier); 
}
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"); 

}
    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;
    }
}