过程 - 创建新的 BreadCrumbDelegate 类
创建 BreadCrumbDelegate 类
痕迹导航委派类应实施 BreadCrumbDelegate 接口。此接口有两种方法: canHandle()getGenerator()
canHandle() 方法由相应的委派工厂调用,用于确定委派的内部 AbstractBreadCrumbGenerator 类 (请见下文) 是否能够为给定页面生成痕迹导航。canHandle() 方法会传递页面 URL、URL 中的上下文对象 (如果有) 以及 URL 中的容器对象 (如果有)。该方法应返回 true 或 false。
各个控制器使用由工厂选取的 getGenerator() 委派方法来获取其内部 AbstractBreadCrumbGenerator 类的新实例。
* 
由于工厂仅为每个委派创建一个静态实例,因此,委派类本身不应使用类实例变量,也不能以任何方式变为有状态类。
创建 AbstractBreadCrumbGenerator 内部类
您的委派类应具有作为 AbstractBreadCrumbGenerator 子类的内部类。BreadCrumbController 将调用内部类的 getBreadCrumbs() 方法,以生成痕迹导航的 BreadCrumbArray。每次调用此方法时,都将创建内部生成器类的新实例,这样生成器类就可以变为有状态类。
生成器类的构造函数将传递至页面的 URL、页面的上下文对象 (如果在 URL 中指定) 和页面的容器 (如果在 URL 中指定)。使用支持的 API 构建 BreadCrumbArray 以将其返回。
有关类的示例,请参阅示例代码
这对您有帮助吗?