-2
考虑到您必须实现有向图结构,并且必须能够在其上运行DFS,BFS和其他算法。设计问题:使用服务方法实现静态服务类
在设计方面,你认为所有的算法上面应该Graph
类封装或者它可能是更合理地把它们放在一个static service class
是得到了Graph
实例,做你选择的算法?
考虑到您必须实现有向图结构,并且必须能够在其上运行DFS,BFS和其他算法。设计问题:使用服务方法实现静态服务类
在设计方面,你认为所有的算法上面应该Graph
类封装或者它可能是更合理地把它们放在一个static service class
是得到了Graph
实例,做你选择的算法?
对封装在该图上的操作(即非静态类)的有向图使用抽象是个好主意。此外,您还可以使用strategy pattern作为算法。如果您使用constructor injection或Inversion of Control Containers and the Dependency Injection pattern来告诉有向图类使用哪些算法,这使您可以随时交换算法,并测试和使用不同的实现,为您提供最大的灵活性。