项目:根据设计模式相关的知识点定义一个商品类,包括商品类型、价格、商品id,商品名称三个属性,有如下三个商品,【oppo、1999元、id:1】、【卫龙、0.5元、id:3】、【保暖裤、19元、id:4】,将这个三个商品加入购物车中去,并按价格从低到高输出。
4条回答 默认 最新
- qq_34370249 2022-03-01 17:54关注
public class Test1 { public static void main(String[] args) { List<Commodity> shoppingCar = new ArrayList<>(); CommodityFactory commodityFactory = new CommodityFactory(); // 向购物车 加入卫龙 shoppingCar.add(commodityFactory.create(Food.class).createCommodity()); // 向购物车 加入 oppo shoppingCar.add(commodityFactory.create(Phone.class).createCommodity()); // 向购物车 加入 保暖裤 shoppingCar.add(commodityFactory.create(Clothes.class).createCommodity()); // 排序 shoppingCar.sort((o1, o2) -> {return o1.getPrice().compareTo(o2.getPrice());}); System.out.println(shoppingCar); } } /** * 商品类 */ class Commodity{ /** * id */ private int id; /** * 价格 */ private BigDecimal price; /** * 产品名称 */ private String name; @Override public String toString() { return "Commodity{" + "id=" + id + ", 价格=" + price + "元" + ", 产品名称='" + name + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public BigDecimal getPrice() { return price; } public void setPrice(BigDecimal price) { this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } } interface ICommodity{ Commodity createCommodity(); } /** * 创建 商品的工厂 */ class CommodityFactory{ /** * 反射创建 对应的 类 * @param clazz * @return */ public ICommodity create(Class<? extends ICommodity> clazz){ try { if (clazz != null){ return clazz.newInstance(); } } catch (Exception e){ e.printStackTrace(); } return null; } } class Phone implements ICommodity{ @Override public Commodity createCommodity() { Commodity commodity = new Commodity(); commodity.setId(1); commodity.setName("oppo"); commodity.setPrice(new BigDecimal("1999")); return commodity; } } class Food implements ICommodity{ @Override public Commodity createCommodity() { Commodity commodity = new Commodity(); commodity.setId(3); commodity.setName("卫龙"); commodity.setPrice(new BigDecimal("0.5")); return commodity; } } class Clothes implements ICommodity{ @Override public Commodity createCommodity() { Commodity commodity = new Commodity(); commodity.setId(4); commodity.setName("保暖裤"); commodity.setPrice(new BigDecimal("19")); return commodity; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 cplex运行后参数报错是为什么
- ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
- ¥15 vue3获取动态宽度,刷新后动态宽度值为0
- ¥15 升腾威讯云桌面V2.0.0摄像头问题
- ¥15 关于Python的会计设计
- ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
- ¥15 stm32c8t6工程,使用hal库
- ¥15 找能接spark如图片的,可议价
- ¥15 关于#单片机#的问题,请各位专家解答!
- ¥15 博通raid 的写入速度很高也很低