Java-在另一个类函数中包装函数

时间:2017-09-10 11:19:54

标签: java class oop

我想检查我的Java代码是否足够OOP,

假设我有一个名为 Shop 的课程,在该课程中,我有一个名为 getAverageEarnings 的方法

我有另一个名为 Simulator 的课程,里面有一个包装函数来包装商店 getAverageEarnings

我必须向用户隐藏Shop类。

例如:

public class Shop{
   public double getAverage(){
     return (this.total/5);
   }
}

public class Simulator{

   Shop shop;

   public Simulator(){
      shop = new Shop();
   }

   public double getAverage(){
       return shop.getAverage();
   }
}

就OOP而言,这是一种好的做法还是一种不好的做法?

2 个答案:

答案 0 :(得分:0)

据我所知,你的问题是,你想把Shop类的方法称为模拟器类,但你不希望Shop会涉及外部世界。右。

如果是这种情况,那么我建议按照以下步骤设计您的模块。

i)将Shop声明为Abstract,因为您在其中具有紧密耦合的逻辑并创建受保护的方法getAverage。

ii)在Simulator中扩展Shop或您喜欢的任何片段类,并使用supper方法调用getAverage。

希望这会有所帮助。

答案 1 :(得分:0)

据我所知,你想从外面的世界隐藏商店类,你可以试试,

- 将商店类抽象和访问说明符设为私有。 - 在模拟器中扩展购物。 - 通过扩展商店,所有成员都可以在模拟器中使用,因此在模拟器中定义GetAverage()并计算其中的平均值。