gpt4 book ai didi

java - 我可以减少 Java 类中这种重复出现的模式吗?

转载 作者:行者123 更新时间:2023-12-01 07:32:55 25 4
gpt4 key购买 nike

我有以下界面:

public interface Gravy {

public List<Giblet> getGiblets();
public Giblet getGiblet(String id);
public int getNumGiblets();
public void addGiblet();
public void removeGiblet(Giblet giblet);

public List<Carrot> getCarrots();
public Carrot getCarrot(String id);
public int getNumCarrots();
public void addCarrot();
public void removeCarrot(Carrot carrot);

public List<Gravy> getGravies();
public Gravy getGravy(String id);
public int getNumGravies();
public void addGravy();
public void removeGravy(Gravy gravy);

}

如您所见,我的 Gravy 中有一个重复出现的模式。 Gravy 对象可以包含内脏、胡萝卜和其他(较小的)肉汁。所有这些都可以添加、删除或查询。

有两点需要注意:

  1. 胡萝卜内脏彼此有一些共同点,但两者与肉汁有很大不同。

  2. 我稍后可能需要添加更多项目(因此需要重构)...

是否可以减少上面的代码,使“动词”只写一次?

最佳答案

这取决于您认为这组功能的相似程度。例如,如果功能组可以被视为其本身,例如一组成分,那么你可以执行以下操作:

public interface Ingredient<T> {
public List<T> getAll();
public T get(String id);
public int size();
public void add(T item);
public void remove(T item);
}

public interface Gravy {
public Ingredient<Giblet> getGiblets();
public Ingredient<Carrot> getCarrots();
public Ingredient<Gravy> getGravies();
}

关于java - 我可以减少 Java 类中这种重复出现的模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889353/

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