Java 我如何知道一个班级是否有很多责任,如何消除这个问题
我正在做一个关于一家餐厅的项目,这家餐厅有很多产品(食物),我有一个一流的食物组合,这个组合由一杯饮料、一道主菜和两个附加菜组成。这个课程有很多方法和属性,当这些方法只返回一个价格并带来额外的价格时,很少有方法进行数学运算和验证Java 我如何知道一个班级是否有很多责任,如何消除这个问题,java,oop,Java,Oop,我正在做一个关于一家餐厅的项目,这家餐厅有很多产品(食物),我有一个一流的食物组合,这个组合由一杯饮料、一道主菜和两个附加菜组成。这个课程有很多方法和属性,当这些方法只返回一个价格并带来额外的价格时,很少有方法进行数学运算和验证 public class FoodCombo { private ArrayList<Product> list = new ArrayList(); //Each Product has his own price private boolean ref
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();
公共类FoodCombo{
private ArrayList list=new ArrayList();//每种产品都有自己的价格
private boolean refill;//您的饮料要重新加注吗?
私有布尔超大小//
私人最终双人组合折扣=0.20;
私人最终双重充值价格=300;
私人最终双倍放大价格=300;
公共食品管理局(){
}
公共无效addProducto(产品){
列表。添加(产品);
}
/*这门课需要考虑一道主菜、两道附加菜和一杯饮料
作为食物组合*/
public int countmain()//1
public int countExtras();//2
public int countDrinks()//3
公共布尔值isItCombo(){
}
;//使用上述方法进行验证
//计算方法
公共双计算subprice();
公共双计算搜索()
公共双计算器填充();
公共双计算SuperSize();
公共双重计算总计();
公共字符串toString();
//我很感激你的建议:)
}
我想把这门课的职责分成多个类,那么我应该创建多少个类来完成良好的编程实践呢?他们应该怎么做呢?第一件事是:忘记实现。所以,“很少有方法做数学运算和验证,当这应该只返回一个价格,并带来他的额外价格”并不重要 如果你想知道某个类是否做得太多,请从高层的角度写下该类的用途和作用。然后看看你写的东西,你就能知道它是否做得太多了。看看它的责任是否集中 例如,如果我有一个类: 此类负责与NRI G13硬币接受器设备接口,提供一个API来接受硬币、处理错误和报告收到的现金量 然后,即使它的实现可能做了很多,类本身也没有做太多 或者,如果我有一门课: 此类从数据库读取数据,处理数据,将其发送到另一台服务器,并将副本发送到浏览器
然后,即使其实现可能相当基本(所有这些操作通常都有一个函数可从库中调用),该类也做得太多,因为它有责任实现太多的结果。您研究过单一责任原则吗?“我应该创建多少个类”听起来好像你想亲身体验一下这个原则,不管网上有多少这个原则的例子。你应该阅读一些坚实的原则,学习一些编码模式,这样你才能最终尝试将一些架构应用到你未来的产品中。@VinceEmigh我对此进行了一些研究,但是你是对的,我应该对此做更多的研究,谢谢你的反馈:@ingkevin收到了,谢谢你的反馈,先生,第二段很好,我将把这些东西应用到我未来的项目和这一段。