管理大文件(代码行)

时间:2014-05-06 15:35:47

标签: android design-patterns

您使用哪些技术来防止文件过大? 您使用什么重构来分解大文件?

我发现Android项目中的某些文件只是因为语言和平台的性质而变得非常大。例如,我的主要活动为每个活动设置一个操作栏,一个抽屉,选项菜单和一个点击监听器。当然,该文件还实现了几个继承的方法......接下来你知道,文件在第1500行结束。

由于我提交给该文件的所有内容都需要具体实现,因此我很难概念化如何将其中的一些内容从文件中抽象出来。

我尝试过的一件事是将一些私有内部类分成一个Impl类,只是因为每个文件都更小,更易于管理:

// Instead of putting this inside MainActivity.java
private class DrawerItemClickListener implements ListView.OnItemClickListener
{
    ...
}

// It's now in a separate file as - very specific class
public class DrawerItemClickListenerImpl implements ListView.OnItemClickListener
{
    ...
}

虽然这有助于细分一个文件的大小,但创建仅使用一次的类会感到奇怪,并且出于非常具体的原因......

2 个答案:

答案 0 :(得分:4)

这实际上是 UI编程的本质,它与java swing编程没有什么不同。

在这个范例中,你有一个JPanel,有一些按钮,一些组合框和一些听众。您必须实现对这些元素的侦听器,但只有JPanel真正使用它们。因此,您将内部类实现为侦听器,以便该面板上的所有内容都能很好地进行交互。

有类似

的东西
public class IpAddressPanelListener implements ActionListener

作为一个公共阶级错过了重点。公共课是关于共享可用性。内部类是关于作业的超级特定的类。其中,在UI的情况下通常是你拥有的

如果你真的需要打破它们,因为你无法将它概念化,那么你可以做的是将它们(和Activity类impl)放入它们自己的包中,并将所有类和方法声明为包范围即可。现在,您可以将文件分解,而不向公众提供

答案 1 :(得分:1)

一个好的Android设计模式是使用片段:http://developer.android.com/guide/components/fragments.html

在非常高的级别,片段是Android应用程序中可重用组件的类。碎片还提供其他好处。其中最值得注意的是能够构建自适应UI - 即可充分利用可用屏幕空间的UI。当您使用片段设计应用程序时,您的活动的角色将成为这些片段的管理(例如,提供数据,询问用户输入等)。

有很多关于片段设计的好教程。