gpt4 book ai didi

java - 我如何知道一个类是否有很多责任以及如何消除这个问题

转载 作者:行者123 更新时间:2023-11-30 05:43:29 27 4
gpt4 key购买 nike

我正在做一个关于一家餐厅的项目,这家餐厅有很多产品(食物),我有一个类食物组合,这个组合由1种饮料、1种主菜和2种配菜组成。 这个类有很多方法和属性,很少有方法做数学运算和验证,而这应该只返回一个价格并带来他的额外价格

public class FoodCombo {

private ArrayList<Product> list = new ArrayList(); //Each Product has his own price
private boolean refill; //Do you want your drink to have refill?
private boolean supersizing; //
private final double COMBO_DISCOUNT = 0.20;
private final double REFILL_PRICE = 300;
private final double SUPERSIZING_PRICE = 300;

public FoodCombo() {
}

public void addProducto(Product product) {
list.add(product);
}

/* This class needs one Main Dish, two Extras, and One Drink to be considered
as a Food Combo*/
public int countMainDishes() //1


public int countExtras(); //2

public int countDrinks() //3


public boolean isItCombo() {
}

; //Use above methods to verify

//Calculate Methods
public double calculateSubPrice();

public double calculatediscount()

public double calculateRefill();

public double calculateSuperSize();

public double calculateTotal();

public String toString();

//我会感谢你的建议:)

}

我正在考虑将这个类的职责分成多个类,所以我应该创建多少个类来实现良好的编程实践?他们应该做什么?

最佳答案

第一件事是:忘记实现。因此,“当这只应该返回价格并带来额外价格时,很少有方法进行数学运算和验证”并不重要。

如果你想知道一个类是否做了太多的事情,从高层次的角度写下这个类的用途和作用。然后看看你写的东西,你就能判断它是否做得太多了。看其职责是否集中。

例如,如果我有一个类:

“此类负责与 NRI G13 硬币接受器设备连接,提供 API 来接受硬币、处理错误并报告收到的现金金额。”

尽管它的实现可能做了很多事情,但类本身并没有做太多事情。

或者,如果我有课:

“此类从数据库中读取数据,处理数据,将其发送到另一台服务器,并将副本发送到浏览器。”

然后,即使它的实现可能相当基本(所有这些操作通常都有一个从库中调用的函数),该类却做了太多的事情,因为它负责实现太多的结果。

关于java - 我如何知道一个类是否有很多责任以及如何消除这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com