[英]Java Factory Method Pattern
请有人能够帮助我了解如何使用工厂方法模式创建类B的新(继承)版本,然后用新方法覆盖方法,该新方法然后返回类A的实例。 (可能还有其他一些无关紧要的东西)。
不要求任何人为我做这件事,真的会很乐意,是否有人可以按照我知道的正确方向将我引向正确的方向,但找到起点就是问题所在,而且截止日期也很近,所以每件事都有帮助。
说明->
我们正在修改的程序是使用guis与商店预先制作的。 我们的任务是对其进行修改和改进。 最初的任务是将重复的产品项合并为对多个产品的单个请求。 即当前在控制台中的输出是这样的;
0003 Toaster ( 1) £ 19.99
0003 Toaster ( 1) £ 19.99
但应该看起来像;
0003 Toaster ( 2) £ 38.98
问题是必须通过使用继承来完成,并且整个程序中都有大量的类。
我们的第一个任务是修改扩展了A类的B类(它还说我们将不得不创建B类而不是A类的新实例)。 为此,我们应该使用Factory Method Pattern创建一个新的(继承的)类C版本,该版本使用新方法覆盖方法“ makeBasket”,然后返回一个新的类B实例。所有这些都无需实际更改其中的任何代码。 C级
我认为代码应该看起来像这样;
public class BetterCashierModel extends CashierModel {
@Override
protected Basket makeBasket()
{
return new BetterBasket();
}
}
但是,我真的不确定,也不知道我打算将该代码放入哪个类。工作的措辞方式意味着它应该能够适合B类某个地方,但我真的无法解决。
这是我们被要求为此特定任务编辑的课程
评论的内容是我添加的内容,目的是为了能够告诉您已经给我的内容。
package catalogue;
import java.io.Serializable;
import java.util.Collections;
public class BetterBasket extends Basket implements Serializable
{
private static final long serialVersionUID = 1L;
// This is where I need to override the method 'add' in the class 'Basket'.
// as well as create the newBasket i previously mentioned i suspect#
// @Override
// public boolean add( Product pr)
// {
// return super.add( pr );
}
}
对不起,如果这令人困惑或不被允许,那么现在真的会很喜欢一些帮助,谢谢:)(编辑格式-对不起)
我认为您只需要使用一种逻辑来覆盖BetterBasket
类中的add
,该逻辑将首先检查输入的Product
是否已存储,您可能应该使用Basket的受保护API。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.