实验1:UML与面向对象程序设计原则

news/2024/12/31 1:05:59/文章来源:https://www.cnblogs.com/yuanxinglan/p/18448602

[实验任务一]:UML复习

阅读教材第一章复习UML,回答下述问题:

面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。

1、关联关系

 

 

 

2、聚合关系

 

 

3、依赖关系

 

 

4、组合关系

 

 

 

 

 

[实验任务二]:单一职责原则

登录模块在实际项目开发中很常见,请按照教材28页(PPT49页)利用单一职责原则重构后的类图实现这一模块。

实验要求:

1.提交源代码和对应的数据库文件(注意将此模块保存,以备以后使用);

2.注意编程规范。

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
</head>
<body>
<h1>登录</h1>
<form action="login" method="post">
    <p>用户名: <input type="text" name="username"></p>
    <p>密码: <input type="password" name="password"></p>
    <input type="submit" value="登录">
</form>
</body>
</html>

 

 

 

 

数据库:DROP TABLE IF EXISTS `users`;

CREATE TABLE `users`  (

  `id` int NOT NULL AUTO_INCREMENT,

  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

  `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;

 

SET FOREIGN_KEY_CHECKS = 1;

 

[实验任务三]:依赖倒转原则与合成复用原则

在一画图软件中提供了多种大小不同的画笔,并且可以给画笔指定不同的颜色,某设计人员对画笔进行了如上图所示的设计。通过分析,可以发现增加画笔的种类和颜色会使得系统中类的数目急剧增加,请根据合成复用原则和依赖倒转原则对上述设计进行重构。

实验要求:

1.提交源代码;

2.画出重构后的类图。

抽象出颜色接口:public interface Color {

    String getColor();

}

 

public class Red implements Color {

    @Override

    public String getColor() {

        return "Red";

    }

}

 

public class Green implements Color {

    @Override

    public String getColor() {

        return "Green";

    }

}

 

 

抽象出画笔大小接口:public interface PenSize {

    String getSize();

}

 

public class SmallPen implements PenSize {

    @Override

    public String getSize() {

        return "Small";

    }

}

 

public class MiddlePen implements PenSize {

    @Override

    public String getSize() {

        return "Middle";

    }

}

 

public class BigPen implements PenSize {

    @Override

    public String getSize() {

        return "Big";

    }

}

 

 

组合颜色和大小:public class Pen {

    private Color color;

    private PenSize size;

 

    public Pen(Color color, PenSize size) {

        this.color = color;

        this.size = size;

    }

 

    public void draw() {

        System.out.println("Drawing with a " + color.getColor() + " " + size.getSize() + " pen.");

    }

}

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/808766.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片地点

图片中会隐藏信息,比如右下角的小票将它翻转,可以看到 erbang Alaf Restaurant,Bangunan,Jalan SS21/39,Selang,这些字眼,于是直接用浏览器搜索 Gerbang正好填补了没看到的缺角, 地址上的Bangunan,Jalan SS21/39符合小票上的字,说明这就是图中的餐厅 作者想说,当要发布照…

等保2.0理解

等级保护(分等级保护,分等级监管):对信息系统分等级实行安全保护 对安全产品分等级管理 对安全事件分等级响应,处置动作:定级,备案,建设整改,等级测评,监督检查 风险评估,安全监测,通报预警,案事件调查,数据防护,自主可控,供应链安全,效果评价,综合考核,等等…

P10418 [蓝桥杯 2023 国 A] 相连的边 题解

一个比较有趣的树形 DP,情况比较多。 【题目简述】 给定一棵树,求三条相连的边,其边权之和最大。 【思路】 以 X 代表当前节点,S 表示儿子,G 表示孙子,P 表示父节点。首先把树建出来,在以下图中,我们模拟二号点的 DP 过程,考虑以下几种情况:有一条边指向父节点时FG(…

订单交易平台三(登录界面整个实现过程)阶段一(只实现简单的登录功能)

1.在视图函数account进行写代码逻辑(需要了解django中form组件的知识、md5码加密、脚本的编写) 1.1 登录界面后端的编写 """ 在account.py文件 """from django.shortcuts import render, redirect from web import modelsfrom utils.encrypt …

订单交易平台二(写代码之前的准备工作)

订单交易平台准备工作 1.先搭建环境 # 1.先创建python基本环境,并且创建虚拟环境# 2.创建完成后,先安装你所需要的Django版本: pip install Django==3.2# 3.创建Django项目: django-admin startproject app01 .# 4.创建Django,在app01根目录文件下创建apps文件,里面放app文…

PM的正交调解法

1.PM的模拟调制过程 ​ PM信号是一种相位调制信号,其携带的信息保存在其信号的相位中,通过改变载波的相位来实现基带数据的传输。 其函数表达式如下: \[s(t) = A*cos(w_c*t + K_f*m(t)) \]其中: \(A\):表示载波幅度。 \(m(t)\):表示基带信号。 \(w_c\):表示载波信号角度增量…

监控室值班人员脱岗睡岗识别系统

监控室值班人员脱岗睡岗识别系统基于Yolov7深度学习神经网络算法,监控室值班人员脱岗睡岗识别系统可以7*24小时不间断自动监控总监控室值班人员是否在工位上(脱岗睡岗玩手机),若值班人员没有在总监控室系统则立即抓拍告警,算法鲁棒性强。监控室值班人员脱岗睡岗识别系统检…

监控室值班人员脱岗识别系统

监控室值班人员脱岗识别系统通过AI视觉技术,监控室值班人员脱岗识别系统实现企业总监控室值班人员脱岗、睡岗、玩手机等场景的AI识别,不需人为干预全天候自动识别。监控室值班人员脱岗识别系统通过建设视频监控智能识别功能赋能企业端,监控室值班人员脱岗识别系统对各个生产…

非煤矿山电子封条

非煤矿山电子封条 支持对接甘肃省矿山监管平台通过AI智能分析技术,非煤矿山电子封条可以实现矿山与甘肃省应急管理部门互联互通,非煤矿山电子封条 支持对接甘肃省矿山监管平台通过在关键地点(关键位置包括矿山主副井口、风井口、车辆出入口和调度室)安装摄像机,非煤矿山电…

甘肃省非煤矿山电子封条建设方案

甘肃省非煤矿山电子封条建设方案通过AI视频智能分析技术,甘肃省非煤矿山电子封条建设方案利用在煤矿风井口、煤矿调度室、煤矿主副井口、矿区车辆出入口重要位置安装摄像机,甘肃省非煤矿山电子封条建设方案对非煤矿区生产作业状态以及矿井出井入井人员数量变化、监控室人员睡…

校园食堂明厨亮灶监控分析系统

校园食堂明厨亮灶监控分析系统通过yolov5网络模型技术,校园食堂明厨亮灶监控分析系统针对校园餐厅后厨厨师穿戴及行为进行7*24小时不间断实时分析预警,如:不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为。校园食堂明厨亮灶…