对于一些接口,我们应该有一些不同的状态。
- 应该有一些开始性抽象方法,如startXXX。
- 应该有一些结束性的抽象方法,如finishXXX
- 一些特别的事件,应该有一些回调,如updateXXX
- 对于不同性质的东西,可以提供不同的bind方法
例子:在Launcher里,加载应用程序的信息,提供了如下的接口:
public interface Callbacks { public boolean setLoadOnResume(); public int getCurrentWorkspaceScreen(); public void startBinding();//开始绑定的抽象方法 public void bindItems(ArrayList<ItemInfo> shortcuts, int start, int end);//对于不同性质的东西,可以提供不同的bind方法 public void bindFolders(HashMap<Long,FolderInfo> folders);//对于不同性质的东西,可以提供不同的bind方法 public void finishBindingItems();//绑定结束的抽象方法 public void bindAppWidget(LauncherAppWidgetInfo info); public void bindAllApplications(ArrayList<ApplicationInfo> apps); public void bindAppsAdded(ArrayList<ApplicationInfo> apps); public void bindAppsUpdated(ArrayList<ApplicationInfo> apps); public void bindAppsRemoved(ArrayList<ApplicationInfo> apps, boolean permanent); public void bindPackagesUpdated(); public boolean isAllAppsVisible(); public void bindSearchablesChanged(); }