[实验任务一]: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."); } }
标签:PenSize,9.26,utf8mb4,class,getSize,面向对象,UML,public,String From: https://www.cnblogs.com/kongxiangzeng/p/18658481