8 面向对象建模 程序设计风格

软件工程复习3 软件工程复习3 名词解释 模块独立性:指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。 软件复用:将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。 模块耦合性:块间联系,软件系统结构中各模块间相互联系紧密。 UML:统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。 多态:多态 阅读详情

我们的程序应该具有可复用性,可扩展性,健壮性,如下

 

可复用性

方法单一职责

如果一个方法承担了多个职责,那么应该拆分为多个方法

 

方法要小

一个方法应该控制在30行代码内,多了应该考虑拆分

 

方法以一致性

相似的方法应具有相同的名称,参数顺序等

 

策略和实现分离

策略方法执行决策,整理参数,收集全局信息,检查状态和错误等

实现方法就是我们的领域逻辑的实现

 

规避全局信息

我们的实现方法不应该直接访问全局信息,应该由策略方法外部传入

 

避免实现带有标志的方法

例如方法A通过参数p1的值执行不同的操作,这时我们应该将方法A拆分成多个操作

 

提取基类

对于由相似性的类,我们可以将共性提取到基类中,将差异性放到子类中

 

使用组合而不是继承

如果类A只是想使用类B的某些功能,则使用组合而不是继承

 

可扩展性

封装类

对于不必要暴露的方法或属性,我们应该将其设为“私有”或“保护”

 

避免遍历多项链接

如 A——B——C,A不应该通过B的链接去访问C,而应该委托B去访问C

 

避免使用Switch

Switch可以应用在工厂里生成不同类,但Switch不应该用在方法中用来执行不同的操作

 

健壮性

错误处理

用户输入错误等进行处理

 

检查参数

在执行方法前,需要检查参数是否符合

 

大规模程序设计

不要过早编码

在编码前应该思考其运行过程

 

有意义的方法名

 

 

面向对象程序设计大二下学期课程全集课件 本文还有配套的精品资源,点击获取 简介:面向对象程序设计是计算机科学的核心概念,尤其在Java编程语言中得到广泛应用。本课程深入讲解面向对象编程基础和实践技巧,涉及Java基本程序设计、类与对象、封装、继承、多态、数组与字符串处理、Swing图形界面设计、进程概念及JDBC数据库操作。通过配套的课件和上海交通大学谢振华教授编写的教材,帮助学生系统掌握面向对象编程的理论和实践... 阅读详情

相关推荐

消费级显卡跑大模型:RTX 3060 12G 部署 70 亿参数 AI 编程助手的优化实战

本文详细介绍了如何在消费级显卡RTX 3060 12G上,通过量化、投机解码和分页KV-Cache等核心优化技术,成功部署并流畅运行70亿参数的CodeLlama-7B编程助手。文章提供了从环境配置、模型准备到参数调优的完整实战笔记,实测显存占用降至7.3GB,生成速度达21.7 token/秒,为开发者和技术爱好者提供了可行的本地AI部署方案。

weixin_29053067的博客 1259

【软件工程系列】 面向对象实现风格

面向对象程序设计风格 1 面向对象实现 把面向对象设计结果翻译成面向对象程序 测试并调试面向对象的程序 2 程序设计语言 所有语言都可完成面向对象实现,但效果不同 使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。 选用面向对象语言的优点: 将来能够占主导地位,产品有生命力 可重用性 类库和开发环境,考虑类库中提供有价值类,开发环境中提供基本软件工具和类库编辑工具及浏览工具。 3 程序设计风格 提高可重用性 提高方法的内聚 减小方法的规模 保持方法的一致

菜鸡也有大佬梦 765

告别网络卡顿!保姆级教程:用国内镜像源5分钟搞定ESP32开发环境(Arduino IDE)

本文提供了一份保姆级教程,教你如何利用国内镜像源在5分钟内快速搭建ESP32开发环境(Arduino IDE),告别网络卡顿问题。教程详细介绍了镜像源配置、开发板安装、测试程序烧录等步骤,并包含与巴法云对接的实战案例,帮助开发者高效完成物联网项目。

weixin_42536058的博客 589

5-面向对象编程风格

目录5.1面向对象编程概念(Object-Oriented Programming Concepts) 5.1面向对象编程概念(Object-Oriented Programming Concepts) 面向对象编程概念的两项最主要特质是:继承(inheritance)和多态(polymorphism)。 继承: 使我们得以将一群相关的类组织起来,并让我们得以分享其间的共通数据和操作行为。 继承机制定义了父子(parent/child)关系。父类(parent)定义了所有子类(children)共通的公有

itzyjr的专栏 732

XR Interaction Toolkit实战:为HTC Vive Cosmos打造抓取、投掷与UI交互(Unity 2023教程)

本文详细介绍了如何使用Unity 2023和XR Interaction Toolkit为HTC Vive Cosmos开发抓取、投掷与UI交互系统。通过实战案例'VR投掷训练室',从基础配置到高级功能实现,涵盖物理抓取、精准投掷机制和VR UI交互设计,帮助开发者提升VR交互开发技能。

weixin_30562507的博客 256

【UE5+Quest3】手部模型替换---3-0

这次手部模型替换遇到了一些小问题,不过好在是bug一个个都处理掉了,我会分开几个章节去整理。详细的视频教程可以参考油管大佬的视频手部素材放到文章末尾,自行下载使用。(仅用作学习研究,不可用于商用)

qbbmnnnnnn的博客 945

面向对象的风格和基于对象的风格程序设计

下面采用两种风格实现thread类 一.基于对象的风格 先上代码: #ifndef _THREAD_H #define _THREAD_H #include class thread { public: thread(); virtual ~thread(); public: void start(); void join(); virt

FreeeLinux's blog 2658

Halcon: 获取仿射矩形-rectangle2的四个顶点、四条边的中点

Halcon 工业应用实用教程中的一个例子: * CenterY : 仿射矩形中心y * CenterX: 仿射矩形中心x * Phi: 仿射矩形角度 * Len1: 仿射矩形宽的一半 * Len2: 仿射矩形高的一半 * CornerY: 仿射矩形端点y * CornerX: 仿射矩形端点x * LineCenterY: 仿射矩形边中点y * LineCenterx: 仿射矩形边中点x * 矩...

ruotianxia的博客 8572

软件工程-第8章 面向对象程序设计风格、测试

文章目录软件工程第8章 面向对象程序设计风格、测试8.1 面向对象程序设计风格面向对象实现程序设计语言程序设计风格提高可重用性提高可扩充性提高健壮性8.2 面向对象程序测试测试策略1.单元测试2.集成测试3.确认测试测试用例设计1.测试类的方法2.集成测试方法 软件工程 第8章 面向对象程序设计风格、测试 8.1 面向对象程序设计风格 面向对象实现 把面向对象设计结果翻译成面向对象程序 测试并调试面向对象的程序 程序设计语言 所有语言都可完成面向对象实现,但效果不同。使用非面向对象语言编写面向对象程序,

江城暮色 1215

【EPICS学习记录】根据官方教程创建一个IOC应用

参照官网给出的IOC创建教程逐步操作完成了一个IOC应用的创建,官网教程中有部分过程表述的不清晰,自己摸索之后完成了IOC的创建,并把流程记录下来。其中有一些操作不是很理解,有问题或者建议欢迎指正。

yifeng_H的博客 3661

连续相位调制通信调制方法的载波同步和定时同步研究及MATLAB仿真

本文将探讨CPM调制方法中的载波同步和定时同步问题,并提供MATLAB仿真源代码。本文讨论了连续相位调制通信中的载波同步和定时同步问题,并提供了相应的MATLAB仿真源代码。通过适当的载波同步和定时同步方法,可以实现对CPM信号的准确解调。希望本文对您理解连续相位调制通信调制方法的载波同步和定时同步问题有所帮助,同时也为您提供了一些MATLAB仿真实现的思路和示例代码。在CPM系统中,载波同步的主要任务是估计接收信号的载波频率偏移和相位偏移。在CPM系统中,常用的定时同步方法是基于自相关函数的峰值检测。

2301_79331230的博客 692

面向对象程序设计的4个主要特点

面向对象程序设计的4个主要特点是什么? 抽象 封装 继承 多态 类和对象体现了抽象和封装 基于以上四点的程序称为面向对象的程序设计。 什么是类? 前边我们学习过c++中的结构体,struct的使用是先声明,然后定义一个该结构体的变量,最后再初始化(赋值) 其实结构体的声明当中有很多不同数据类型的成员,在一个结构体当中,这就是对属性的封装,但是结构体与类相比较,还缺少了一个重要的环...

weixin_33915554的博客 1155

泛微OA自定义post接口和路径(无侵入)

泛微OA自定义post接口和路径(无侵入)

技术分享 3870

面向对象程序设计

面向对象程序设计模式定义:面向对象程序设计是一种方法,这种方法为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。这样的程序设计方法称为面向对象程序设计。从以上定义可以看到,一个对象被认为是计算机内存中的一个独立区间,在这个区间中保存着数据和能够访问数据的一组操作。因为内存区间是相互独立的,所以对象可以不经修改就应用于多个不同的程序中。OOP把

DotNet夜未眠 699

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

面向对象1

可以使用基本数据类型,也可以使用引用数据类型Java中的变量在使用前都必须对其进行初始化成员变量可以不对其进行初始化,系统会默认对其进行初始化成员变量可以在成员方法,构造方法,代码块中使用局部变量不会自动对其进行初始化方法的参数也是局部变量定义方法 成员方法方法是类中具有的某种功能类中的成员变量和方法都必须通过创建出来的对象调用构造方法的名字于类名相同定义:名字与类名相同,且没有返回值,且不需要使用void修饰特点:类中没有定义时,会默认有一个无参的构造方法。

zundujia的博客 1842

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

面向对象练习题

1.面向对象三大特性,各有什么用处,说说你的理解。  继承:解决代码重用问题  多态:为了类在继承和派生的时候,保证使用家谱中任一类的实例的某一属性时可以正确调用。  封装:明确区分内外,控制外部对隐藏属性的操作行为,隔离复杂度 2.类的属性和对象的属性有什么区别?  类的属性分为数据属性和函数属性。  类的数据属性时所有对象共享的,类的函数属性是绑定给对象用的,称为绑定到对象的方法。...

anmi3721的博客 1193

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java面向对象报告总结,JAVA面向对象的总结

原标题:JAVA面向对象的总结面向对象是Java学习中的重点,也是面试找工作的重点考察方向,也是千锋教育Java的重点内容。可见千锋小编的这篇Java面向对象的总结是多么重要,速速收藏吧! 1、概述面向对象设计实质上就是对现实世界的对象进行建模操作。类实质上就是封装对象属性和行为的载体,而对象则是类抽象出来的一个实例。面向对象程序设计具有以下特点:封装性、继承性和多态性。封装是面向对象编程的核心思...

weixin_28688385的博客 546

二级公共基础(二)

一、程序设计基础 1、程序设计风格主要强调:“清晰第一,效率第二”。 2、主要考虑的因素: ●源程序文档化 1、符号名的命名 2、程序的注释:分为序言性注释和功能性注释 3、视觉组织 ●数据说明的方法 次序应规范化、变量安排有序化、使用注释 ●语句的结构 3、程序设计主要经过了结构化程序设计(面向过程的程序设计)和面向对象的程序设计。 3.1结构化程序设计的原则: ●自顶向上:先考虑整体,再考虑细...

lishiriyao的博客 432

20155334 2016-2017-2《Java程序设计》课程总结

20155334 2016-2017-2《Java程序设计》课程总结 1. 每周作业链接汇总 题目 主要内容 二维码 预备作业1 不知道所以然的第一次博客 预备作业2 有关之前的C语言的调查 预备作业3 虚拟机与Linux的初体验 第一周作业 1.了解Java基础知识2.了解JVM、JRE与JDK,并下载、安装、测试JDK;3.了解PATH、CLASSPATH、SO...

weixin_30533797的博客 125

编程范式之面向对象、过程、函数式编程浅析

面向对象编程、面向过程编程、函数式编程等等,这些也许是大家经常会听到的术语,这些都是什么意思,干什么用,他们之间有什么区别和联系,这篇文章来给大家讲讲这些以及它们的编程思...

开涛的博客 1894

软件工程期末复习汇总(非常详细)

软件工程期末复习汇总(非常详细)

RockLis的博客 6万+

上位机程序设计一课一得

同时,控制台程序的编写也培养了我调试代码的能力,学会通过断点调试、输出日志等方式查找并解决程序中的错误,为后续更复杂的程序开发奠定了坚实的基础。类是对现实世界中事物的抽象,通过定义类的属性和方法,可以将相关的数据和操作封装在一起,实现代码的模块化和复用性。在实际项目中,我根据不同的功能需求创建了各种类,比如用于数据处理的类、实现特定业务逻辑的类等。通过这一系列的学习和实践,我深刻体会到上位机程序设计是一门综合性很强的学科,它需要扎实的编程基础、良好的逻辑思维能力,以及对各种技术和工具的熟练运用。

lsq572434400的博客 332

面向对象 第一章 笔记

笔记目录提示一、介绍1.1 介绍面向对象技术(1) 面向过程编程(2) 面向对象编程(OOP)1)对象 Object2)方法 method3)type 或 class4)优点(3) 基本概念1)Object 对象2)Class 类4)Message 消息5)Abstraction 抽象6)Encapsulation 封装7)Inheritance 继承8)Polymorphism 多态1.2 介绍UML1.3 软件开发过程和OOA&D1.4 组件和CBSD1.5 模式和体系结构二、 提示 主要是

weixin_45928161的博客 334

NX二次开发UF_MODL_ask_tiny_geometry 函数介绍

一个几何检查例程。返回输入对象是否很小。

王牌飞行员_里海的博客 950

20155233 2016-2017-2《Java程序设计》课程总结

20155233 2016-2017-2《Java程序设计》课程总结 每周作业链接汇总 预备作业1:预习去写博客,如何达到理想的师生关系。 预备作业2:对自己C语言的学习进行了解与认识。 预备作业3:学习安装虚拟机以及Linux的简单命令。 第一周作业:学习教材的第一章、第二章,了解了Java的发展历程,最基本的Java环境的搭建,以及编写了简单的Java小程序。 第二周作业:学习Ja...

dayang1122334的博客 167

【JavaSE】面向对象(一)

可以使用基本数据类型,也可以使用引用数据类型Java中的变量在使用前都必须对其进行初始化成员变量可以不对其进行初始化,系统会默认对其进行初始化成员变量可以在成员方法,构造方法,代码块中使用。

2301_78168249的博客 118
上一篇: 6 面向对象建模 实现对象
下一篇: 9 面向对象建模 软件工程
dabusidede
博客等级 码龄9年 84粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值