2014-10-30 44 views
0

这个问题是为了区分util类和helper类。具有依赖性的助手类是否正确设计?

我认为助手类可以有复杂的领域,其中util类只应包含静态方法。你认为下面的例子作为辅助类很好吗?或助手类不能包含任何依赖?例如,

class BusinessDataHelper(){ 
    private BusinessDataService service; 
    public Result getData(int id){ 
      service.getData(id) 
     } 
} 

什么我用的辅助类的理解是通过增加可使用多个类为辅助类的方法,以减少重复的代码。并在上面的例子中为所有想要使用getData方法的类添加助手类依赖项。

+0

多一点背景将有助于我们更全面地回答这个问题,但基于我所看到的:我会建议反对做这种方式。为了使用辅助方法,必须创建一个新的'BusinessDataHelper'似乎很奇怪。在这种情况下是否可以将BusinessDataService作为第二个参数发送给静态方法? – 2014-10-30 03:41:07

回答

0

不,这肯定不是辅助方法。你在那里有一个吸气。

让我给你一个辅助方法的一个例子:

class Example { 
    public static void main(String[] args) { 
     int num1 = 4; 
     int num2 = 5; 
     System.out.println("We're going to be adding to numbers!"); 
     System.out.println("The sum of the two numbers is " + add(num1, num2)); 
    } 

    public static int add(int a, int b) { 
     return a + b; 
    } 
} 

所以,很显然,这是一个过于简单的版本。您不需要添加单独的方法,因为这是一个简单的操作。但想象一下,您正在处理大量列表,您需要查找该列表中的数字的平均值。您可以在名为averageList的底部创建一个方法,该方法以ArrayList<Integer>作为参数,并返回平均值为int。这样,每次你需要列表的平均值时,你可以调用方法averageList(myList)并获得平均值,而不必输出所有你需要做的数学来获得平均值时间。

因此,例如,你平均的方法可以是:

public static int averageList(ArrayList<Integer> list) { 
    int x = 0; 
    for(int i = 0; i < list.size(); i++) { 
     x += list.get(i); 
    } 
    return (x/list.size()); 
} 

如果没有辅助方法,你必须每次你想获得的平均时间键入的5条线。有一种方法可以让事情变得更简单。

我希望有帮助。祝你好运:)

0

在我看来,使用助手类的意图是添加功能到应用程序(而不是应用程序的核心功能),如将数据从对象转换为其他类型的对象,日期转换器助手转换日期到时间戳以保存在特定的数据库中。可封装一般操作的可重用组件。

但是,util类专门具有静态方法来定义重用函数,如java中的Collections类。

0

辅助类应包含帮助正在帮助的服务(类)的函数。包含其他服务作为依赖关系的助手看起来并不干净,但它可以调用实用程序类。实用程序类更具通用性,它可以帮助包或项目。

一个例子辅助类:

class BusinessDataService(){ 
    private BusinessDataHelper helper; 
    ....... 
} 
相关问题