NCHU_单部电梯调度程序设计分析_23207332
一、前言 三次电梯调度程序设计围绕单一职责原则(SRP)和迭代式开发展开,逐步优化类结构和功能实现: 知识点覆盖: 面向对象设计(类、枚举、接口) 集合框架(Queue、List、Map) 正则表达式(输入解析) 状态机管理(电梯运行状态、方向) 调度算法(请求优先级、路径规划) 难度递进: 题目一 ...
面向对象程序设计-前3次作业总结
题目集1-3的总结 前言: 前三次作业用到了以下知识点: 1.类的创建与设计 2.类的方法实现 3.面向对象编程基础思想 4.类的单一职责原则应用 5.正则表达式的使用 6.队列管理 LinkedList 及其各个方法的使用 难度以及题量总结: 电梯调度问题:三次的电梯调度问题难度中等,基本逻辑并不 ...
【面向接口编程(IOP)典型场景】底层组件如何实现回调通知上层应用系统?
本文介绍了在账务插件开发中,如何通过“面向接口编程”实现异步转账完成后的回调通知机制。通过定义回调接口 `TransferCallback`,账务组件在异步操作完成后可通知上层应用进行后续业务处理。文章提供了纯 Java 和 Spring 两种实现方式的代码示例,展示了接口在插件化架构中的重要作用,... ...
题目集8~9总结性Blog
一、前言 对这两次题目集的总结: 这两次题目集相较于上次迭代作业来说,在题目量和难度上都做了下调。但要求我们在理解题目意思、设计好程序结构、掌握并运用知识这三方面有一定的要求。涉及到类的继承与多态,抽象类的设计和抽象方法的灵活运用。以及面向对象的几种程序设计的原则(单一职责原则、里氏代换原则、开闭原 ...
开窍了!如何为缓存工具类(CacheUtil中的static方法)定义interface(下)
职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface? ...
NCHU OOP BLOG1--电梯调度程序
NCHU OOP BLOG1--电梯调度程序 目录 1.前言 2.设计与分析 3.踩坑心得 4.改进建议 5.总结 正文 1.前言 这三次大作业主要围绕的对电梯的调度来展开,调度算法为LOOK算法,实际上,比现实中的一些电梯所用算法更简单。 其中,第一次作业难度最大,后面两次作业进行迭代并不难; 考 ...
行为型设计模式——观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,通过定义对象间一对多的依赖关系实现状态变化的自动通知机制,广泛应用于解耦事件发布与订阅场景 适用于 ①当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这两者封装在独立地对象中以使它们可以各自独立地改变和复用。 ②当对一个对 ...
为什么构造函数需要尽可能的简单
最近在做一些代码重构,涉及到Python中部分代码重构后,单元测试实现较为麻烦甚至难以实现的场景,其中一个主要的原因是构造函数过于复杂。 因此,本篇文章借此总结一下我们应该需要什么样的构造函数。本篇文章涉及的概念不仅限于Python。 构造函数是什么 构造函数用于创建对象时触发,如果不自定义构造函数 ...
对象命名为何需要避免'-er'和'-or'后缀
之前写过两篇关于软件工程中对象命名的文章:开发中对象命名的一点思考与对象命名怎么上手?从现实世界,但感觉还是没有说透, 在软件工程中,如果问我什么最重要,我的答案是对象命名。良好的命名能够反映系统的本质,使代码更具可读性和可维护性。本文通过具体例子,探讨为何应该以对象本质而非功能来命名,以及不当命名 ...
Servlet详解
概念 Servlet是运行在服务端的小程序(Server Applet),可以处理客户端的请求并返回响应,主要用于构建动态的Web应用,是SpringMVC的基础。 生命周期 加载和初始化 懒加载(默认在客户端第一次请求加载到容器中),通过反射实例化,并调用init(),且init()只能被调用一次 ...
UML之泛化、特化和继承
在UML(统一建模语言)中,泛化(Generalization)和特化(Specialization)是面向对象思想中继承(Inheritance)关系的重要概念,它们描述类与类(或用例与用例、参与者与参与者等)之间的一般与特殊的关系。 ...
UML之属性与参数的多重性
在UML中,多重性是指一个条目潜在的数量范围。多重性可被用于属性、操作参数、关联关系。UML元模型也使用多重性对元模型元素之间的关系进行约束。多重性总是包含基数值,它是相关条目在现实世界中的确切数量。本文将说明类属性和类操作参数的多重性。 一、属性的多重性 假设我们需要定义一个表示书的Book类,它 ...
UML之模型、包及包的版型(构造型)
包是UML模型的组织结构,也是UML项目的配置管理结构。包存在多个层级,除了顶层包,所有包隶属于一个且仅隶属于一个上层包。在项目不同阶段实际推进与配置过程中,通常以不同层级的包为单位进行check-in、check-out、打标签及建立基准。许多项目会在计划的时间点进行正式的官方评审,例如系统需求评 ...
UML之包的导入与访问
包是UML中管理元素的有效手段,UML中的所有元素均隶属于某一个包,即使你没有指定元素所属的包,这些元素也会被置于一个默认包中,包的本质是命名空间。当我们在一个包中需要访问另一个包中的元素时,可以使用符号“::”逐级引用。 例如在下图所示的包图中,存在两支包含多个层次的包,如果包A3中的元素需要访问 ...


