面向对象大作业2:购物车改进(可选)-个人完成

目录

1.使用子类与继承体现不同商品的特性:

2.使用多态、DAO模式为商城增加不同的存储方法:

思考:对于我们的购物ShoppingCart类,需要设计ShoppingCartDao接口吗?

思考:设计与实现ShoppingCartDao需要考虑什么?


1.使用子类与继承体现不同商品的特性:

  • 构建父类:Commodity 其中有商品的基础属性:如商品名字,商品价格,商品的编号。
  • 以及对应的构造函数与get,set方法。

  • 继承与商品类的子类Phone与Book。其作为子类拥有其特有的信息,如Phone的像素,尺寸,制造商。以及Book的作者,作者信息,出版社。
  • 子类的构造函数会先调用父类的构造函数再执行自己的构造函数。
  • 子类的show会先调用父类的show,输出商品的基本信息。

2.使用多态、DAO模式为商城增加不同的存储方法:

  • 定义Dao接口,里面定义了对数据的基础操作方法。

  • 定义2个类实现接口。其中ShoppingCartArray采用数组的方式保存商品,ShoppingCartArraylist采用Arraylist的方法保存商品。

  • 2个类各自根据其储存类型实现接口的方法。

在测试代码中实现Dao

在初始化函数中,使用面向接口的方法进行储存数据,对于11行与12行的储存系统会根据其储存类型做出不同操作,而使用它只需要用接口定义的方法即可,不需要关心其内部的储存方式与实现方式。

通过多态的方式对商品进行储存,将子类放入父类的数组中,这样在使用数组元素时会自动选择对应的子类而调用相关方法。这简易了代码。

运行结果:

思考:对于我们的购物ShoppingCart类,需要设计ShoppingCartDao接口吗?

需要。

理由:

  • shopping储存的数据方式可以设计为多种,而使用ShoppingCartDao接口可以统一的使用这些数据。
  • 通过 DAO 模式可以向其他部分隐藏细节,这就使得隔离出的部分也能够添加更多的组件来提供更好的服务;
  • 通过将一系列相似的操作提炼并设计出一个接口,使得实现接口的类的特征更为鲜明,使得该类能更灵活地嵌入其他代码中发挥作用

思考:设计与实现ShoppingCartDao需要考虑什么?

  • 对数据储存的操作。如增删减改。每一种储存数据的方式对应的操作并不相同。文件储存的add与数组储存的add操作存在差异。所以需要在接口定义一个统一的操作。然后在各自类中具体实现这个方法。

有必要。加入商品,删除商品的操作并不能统一实现。而是要在实现接口的类中具体实现,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜间飛行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值