这可能不是直接与编程相关的问题,而是基于架构的问题。我面临的挑战是将我的 android 应用程序分成几部分,因此它是高度可配置的。我想做这个来处理不同的客户需求,注意这个应用程序不应该在 Google Play 中发布。今天我的应用程序有一些组件将是标准的而不是可配置的组件。这些组件的示例是带有Slidemenu的ActionbarSherlock。下面的插图希望能给你这个想法
注意: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
, 以使其更加基于组件。我想知道什么是最佳实践,有什么推荐的方法吗?有人有以前项目的例子吗?