这可能不是与编程相关的直接问题,而是基于架构的问题。我面临的挑战是将我的Android应用程序分成几个部分,因此它具有高度可配置性。我想这样做可以满足不同客户的需求,请注意这个应用程序不应该在Google Play中发布。今天,我的应用程序有一些组件,它们将是标准的,而不是可配置的组件。这些组件的示例是ActionbarSherlock和Slidemenu。希望下面的插图可以为您提供想法
注意:Workflow 2
和Workflow 3
具有完全不同的逻辑和布局。
我的一些逻辑已经处理完毕,我有一种发送不同事务的方法。交易类型可以是我的email
或webservice
我处理此问题的方法是实施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
,以使其更加基于组件。我想知道什么是最佳做法,有没有推荐的方法呢?有人有以前项目的例子吗?