Java工厂方法模式

时间:2018-01-21 07:43:24

标签: java eclipse inheritance bluej factory-method

请有人能够帮助我理解我是如何使用工厂方法模式创建类B的新(继承)版本,然后使用新方法覆盖方法然后返回A类的一个实例。(可能还有一些其他不相关的东西)。

不要求任何人为我做这件事只是真的很爱,如果有人能指引我朝着正确的方向,因为我知道我可以做到,但找到那个地方开始是问题加上截止日期是非常接近所以每一个小帮助

Explanation->

我们正在修改的程序是使用guis进行商店预制的程序。我们的任务是修改并改进它。最初的任务是将重复的产品项合并为多个产品的单个请求;即目前控制台中的输出就像这样;

$(document).ready(function() {
  $(".overlay").fadeIn();
 });
  $(window).on('load', function() {
     $(".overlay").fadeOut();
   });

但应该看起来像;

0003 Toaster ( 1) £ 19.99

0003 Toaster ( 1) £ 19.99

问题是这必须通过使用继承来完成,并且整个程序中包含了大量的类。

我们的第一个任务是修改扩展了A类的B类。(它还说我们必须创建一个B类而不是A类的新实例)。我们应该通过使用工厂方法模式来创建一个新的(继承的)C类版本来覆盖方法' makeBasket'然后使用一个新方法返回一个B类实例。所有这些都没有实际更改C类中的任何代码。

我认为代码看起来应该是这样的;

0003 Toaster ( 2) £ 38.98

但是我真的不确定并且不知道我将这个代码用在哪个课程中。工作措辞的方式意味着它应该能够适应B级的某个地方,但我真的可以&#39实现它。

这是我们被告知要为此特定任务编辑的课程

我已添加的内容是为了能够分辨已经给我的内容而添加的内容。

public class BetterCashierModel extends CashierModel {
@Override
protected Basket makeBasket()
{
return new BetterBasket();
}
}

很抱歉,如果这令人困惑或不允许,那么现在真的很想得到一些帮助,谢谢:) (编辑格式 - 抱歉)

1 个答案:

答案 0 :(得分:0)

我认为你只需要覆盖add类中的BetterBasket这样的逻辑,首先检查输入Product是否已经存储,你应该使用受保护的篮子的API。