组合模式之对购物网站

1、 实例概况

用组合模式对购物网站的商品进管理,绘制选择模式的结构图,并绘制该案例的类图,并编写代码演示结果,运行结果样例显示如右图所示。

组合模式之对购物网站

2、所用模式结构视图

3、实例类图

4、实例实现代码

4.1 抽象构件类ZC32Clothing

public abstract class ZC32Clothing {
    protected String name;
    public ZC32Clothing(String name) {
        this.name=name;
    }
    public abstract void add(ZC32Clothing c);
    public abstract void remove(ZC32Clothing c);
    public abstract void display(int depth);
}

4.2 容器构建类ZC32SexClothing(男女服装类)

import java.util.ArrayList;
import java.util.List;

public class ZC32SexCloting extends ZC32Clothing {
    private List list=new ArrayList();
    public ZC32SexCloting(String name) {
        super(name);

    }

    public void add(ZC32Clothing c) {
            list.add(c);
    }
    public void remove(ZC32Clothing c) {
        list.remove(c);

    }
    public void display(int depth) {
        for(int i=1;i

4.3 叶子构建类ZC32Type(具体服装类)

public class ZC32Type extends ZC32Clothing{

        public ZC32Type(String name) {
            super(name);

        }
        public void add(ZC32Clothing c) {
            System.out.println("不能添加");

        }
        public void remove(ZC32Clothing c) {
            System.out.println("不能删除");

        }
        public void display(int depth) {
            for(int i=1;i

4.4 客户端测试类ZC32Client

public class ZC32Client {
    public static void main(String[] args) {
        ZC32Clothing c=new ZC32SexCloting("服装");

        ZC32Clothing man=new ZC32SexCloting("男装");
        ZC32Clothing woman=new ZC32SexCloting("女装");

        ZC32Clothing man1=new ZC32Type("衬衣");
        ZC32Clothing man2=new ZC32Type("夹克");
        ZC32Clothing woman1=new ZC32Type("裙子");
        ZC32Clothing woman2=new ZC32Type("套装");

        c.add(man);
        c.add(woman);

        man.add(man1);
        man.add(man2);

        woman.add(woman1);
        woman.add(woman2);

        c.display(1);

    }

}

5、结果

组合模式之对购物网站

Original: https://www.cnblogs.com/chaos2022/p/16171243.html
Author: cxc超小超
Title: 组合模式之对购物网站

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608886/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java资料大全(视频内容包含源码)

    转眼间已经到了六月,陆陆续续不少小伙伴需要学习资料,我将资料进行了一个整理,方便大家查阅。这次分享涉及到python爬虫,数据分析,java后端技术,测试等, 文末关注然后回复相应…

    Java 2023年5月29日
    077
  • 服务调用过程

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 源码分析均基于官方Demo,路径:dubbo/dubbo-demo 如果没有…

    Java 2023年6月16日
    079
  • springboot轻量部署方案

    背景:jar包启动时,由于依赖较多,包过大,重启耗时较多 需求:服务快速启动、资源分类部署 方法: 一、新建一个springboot项目,随便引入一些依赖 三、配置打包形式、脚本 …

    Java 2023年6月8日
    086
  • 基于ssm的pagehelper分页操作

    基于ssm的pagehelper分页操作 1,导入pagehelper依赖 <dependency> <groupId>com.github.pagehel…

    Java 2023年6月5日
    091
  • oracle数据库动态拼接查询条件解决方案

    oracle、动态参数传递 在项目中遇到需要动态拼接查询条件的需求,现将解决方案列于下。 一、 sql;gutter:true; select * from table t whe…

    Java 2023年6月13日
    089
  • C[泊车管理系统]

    // main.c //泊车管理系统 // Created by 丁小未 on 13-7-14. // Copyright (c) 2013 年 dingxiaowei. All …

    Java 2023年5月29日
    084
  • 【源码笔记】浅析ConcurrentHashMap的构造方法及put方法(JDK1.7)

    ConcurrentHashMap的数据结构如下。 和HashMap的最大区别在于多了一层Segment数组,Segment数组下再挂table。这也是ConcurrentHash…

    Java 2023年6月6日
    083
  • mysql-常用命令

    C1 Mysql常用命令合集 P1.设置方面命令 连接 mysql -u root -p 授权指定ip访问 GRANT ALL PRIVILEGES ON *.* to ‘root…

    Java 2023年6月16日
    072
  • 草履虫都能看懂的系统环境变量配置

    超详细的环境变量配置教学(Windows10) 很多刚刚入坑计算机的小伙伴可能对环境变量的配置不太熟悉,如果你还在找教程,那么看到这里,你就不用继续找了(嘿嘿~),废话不多说,让我…

    Java 2023年6月5日
    096
  • Maven 3 从入门到入门

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月9日
    097
  • Java编程题(1):n个数里出现次数大于等于n/2的数

    题目描述:输入n个整数,输出出现次数大于等于数组长度一半的数。 输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。 输出描述…

    Java 2023年6月6日
    0115
  • Unity应用架构设计(10)——绕不开的协程和多线程(Part 2)

    在上一回合谈到,客户端应用程序的所有操作都在主线程上进行,所以一些比较耗时的操作可以在异步线程上去进行,充分利用CPU的性能来达到程序的最佳性能。对于Unity而言,又提供了另外一…

    Java 2023年5月30日
    097
  • 程序包org.springframework.boot不存在

    使用idea2020.2.2新版本发现新建的springboot项目起不来,报错信息如下: java: 程序包org.springframework.boot不存在java: 程序…

    Java 2023年5月30日
    0169
  • 随机化快速排序(java)

    目录 一、概念及其介绍 二、适用说明 三、过程图示 实例 四、Java 实例代码 一、概念及其介绍 快速排序由 C. A. R. Hoare 在 1960 年提出。 随机化快速排序…

    Java 2023年6月5日
    0104
  • [学习标准库]ctype.h

    概述: ctype.h为我们提供了很多了与字符相关的判断或处理函数,方便地对字符做判断和转换大小写等处理。 下面以函数为单位进行学习。 isalnum 功能: 测试传入参数其对应的…

    Java 2023年6月5日
    0102
  • Spring mvc源码分析系列–前言

    距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡。Spring mvc这一套…

    Java 2023年6月8日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球