这些概念术语包括:概念完整性、内聚性、抽象数据类型、耦合、信息隐藏、最小惊讶规则等。
如果您读过一本技术书籍(我想您应该是一名软件工程师),您可能会发现一个您不熟悉的术语或概念。也许你在大学的某个时候学习过它,但你对它的记忆已经淡化了,或者它是一个你以前从未接触过的新东西。通常,这取决于您正在阅读的书籍的先进程度,以及您需要什么样的经验才能充分利用您的阅读。
在
面向对象
的编程中,抽象是将现实世界的实体简化为其在软件目的上下文中的基本和最需要的属性和行为的行为。因此,在政府应用程序的上下文中,用户对象需要具有 (firstName, lastName, nationalIdNumber ); 然而,在电子商务环境中,用户对象不需要属性“ nationalIdNumber ”。
对象属性是根据对象状态保存不同值的属性(变量)。例如,假设有两个用户对象,一个可以具有属性/属性 firstName=”Mohamad”,而第二个具有 firstName=”John”。
对象行为是对象可以执行的动作。例如,用户对象可能具有获取用户全名的行为。
封装涉及将必要的属性和行为捆绑在一个类中。它只公开其他对象需要的功能并隐藏其余的功能。在用户对象中,保存用户的购物车没有任何意义。不过,可以保存他们的名字。将 getFullName() 设为公共方法而将 generatePasswordSalt() 设为私有方法也是有意义的。
这涉及设计类,以便其他类不需要的属性和方法对它们隐藏。
分解是将一个大的或整个实体分解成更简单和更小的部分,在这些部分很容易集成在一起并形成更大的实体。例如,在电子商务环境中,用户可以有一个账单地址和送货地址,或者可能有多个送货地址(家庭、办公室、湖边小屋等)。在这种情况下,您需要使地址成为具有自己的属性和行为的单独对象。
这是以相同方式与不同对象类型交互的能力。通常是因为它们都继承了相同的超类或应用了相同的接口。假设您有一个名为“DataStore”的接口,它有两个方法签名“query() 和 save()”,现在您可以有多个对象来实现这个接口“FileSystemStorage、DBStroage 等”。因此,虽然它们是不同类型的对象,但它们都有两个方法“query() 和 save()”。
这涉及在单独的类中重构公共属性和方法,以便更频繁地重用。它将确保您的系统更少耦合。
这是软件工程中的一个术语,它描述系统的两个部分何时相互依赖,以至于它们中的每一个都不能在另一个上下文中单独重用。这被认为是不好的做法,因为这两个部分是“耦合的”。还记得我们之前创建的地址对象吗?您可以将它与用户地址或商店地址等一起使用,因此它不再与用户对象耦合。
灵活性是指在不破坏系统的情况下应用更改或向系统添加功能的容易程度。
这是指在系统交付后修复、改进或更改功能。
抽象数据类型:
这是一种由其行为定义且没有实现的数据类型。您可以将抽象数据类型视为软件设计中使用的理论概念。抽象数据类型的一个例子是堆栈、队列或列表。堆栈必须具有“Push and Pop”操作,这些操作如何实现由开发人员决定,而不是编程语言。队列数据类型也是如此;它必须具有“入队和出队”操作。现在假设您是一名开发人员,正在构建一个列表。列表是一种抽象数据类型,其接口由编程语言提供,由开发人员完成。开发人员可以创建链接列表或数组列表或任何其他列表。
这是从设计中创建工作系统的过程。简单来说,就是写代码的过程。
Cohesion 描述了一个模块或一个类的目的是多么简单。高内聚模块意味着它的目的是明确的,并且不会比它需要的更复杂。另一方面,低内聚意味着它非常复杂,其目的不明确。
概念完整性
当软件具有概念完整性时,这意味着它具有如此强烈的统一主题或感觉,以至于看起来好像是一位开发人员对其进行了编程。实际上,整个团队可能已经开发了该软件,但是因为他们遵循相同的指导方针和结构,所以一切看起来都是统一的。
这是指系统部分的角色或动作。您可能还会听到术语“关注点分离”,它可以帮助您解耦系统组件。
最小惊讶法则
这一原则指出,组件的行为应该符合人们期望的行为。例如,作为开发人员,如果我想禁用一个用户帐户,那么我希望这在用户模块中而不是在融资模块中。
从一个过来人的角度来说,新手学编程方法真的很重要,不然就会造成高消耗,低效能的情况。
如果你想更好的提升你的编程核心能力(内功),下面的这个资料也建议去看看,对基础提升挺有帮助的。
C语言C++编程学习交流圈子,
QQ群:
614504899
【
点击进入
】微信公众号:C语言编程学习基地
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
编程学习视频分享:
这些概念术语包括:概念完整性、内聚性、抽象数据类型、耦合、信息隐藏、最小惊讶规则等。如果您读过一本技术书籍(我想您应该是一名软件工程师),您可能会发现一个您不熟悉的术语或概念。也许你在大学的某个时候学习过它,但你对它的记忆已经淡化了,或者它是一个你以前从未接触过的新东西。通常,这取决于您正在阅读的书籍的先进程度,以及您需要什么样的经验才能充分利用您的阅读。抽象在面向对象的编程中,抽象是将现实世界的实体简化为其在软件目的上下文中的基本和最需要的属性和行为的行为。因此,在政府应用程序的上下文中.
抽象类(abstract class): 抽象类不能创建对象,主要用来创建子类。Java中的抽象类使用 abstract 修饰符定义。
抽象数据类型(abstract data type ADT):抽象数据类型指明了可能的类型和允许进行的操作,但是没有提供实现。
访问标识符(access specifier):用于方法或变量定义,限定了哪些类可以访问该方法或变量。Java中的访问标识符
Object-Oriented Programming (OOP, 面向对象
编程
)
数据与处理数据的逻辑被封装在特定的环境中(对象),对象互相访问需要通过接口
面向对象使得开发和维护程序变动容易了。
Generic Programming (GP,泛型
编程
...
解决问题(problem-solving):提取问题、寻找方案、表达方案的过程。
高级语言(high-level language):为了人们能够方便地读写而设计的
编程
语言,如
C++
。
低级语言(low-level language):为了便于计算机执行而设计的
编程
语
言。也称作“机器语言”或“汇编语言”。
可移植性(portability):程序可以在多种平台上执行的属性。
形式语言(forma...
什么是
编程
语言?
人与人交流是依靠说话来进行,说出来的话,比如说中国话、英国话等,就是语言。
中国人与中国人交流用中文,英国人与英国人交流用英文。而
编程
语言,就是人与机器的交流方式。
自从1946年世界上第一台电子计算机问世,人类和机器的交流方式和语言就成为了软件工程师和计算机从业者的主要研究方向,更有效更简便的
编程
语言成为了软件工程师的新宠儿,伴随着计算机的飞速发展,计算机的硬件升级速度也越来...
在软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则是高内聚低耦合。
从模块粒度来看,高内聚:尽可能类的每个成员方法只完成一件事(单一责任原则); 低耦合:减少类内部,一个成员方法调用另一个成员方法。
从类角度来看, 高内聚低耦合:减少类内部,对其他类的调用;
从功能块来看 高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据)即横向:类与类之间、模块与模块之间;纵向:层次之间;尽可能,内容内聚,数
计算机
编程
术语
by Zhia Hwa Chong 志华化
如果您是
编程
新手,这些是您应该
知道
的最重要的计算机科学
术语
(These are the top Computer Science terms you should know if you’re new to programming)
关键的CS
术语
和概念用简单的英语解释 (Crucial CS terminologies and c...
2023年最值得学的
编程
语言Top 5是:
1. Python:作为一种简洁、易学易用的
编程
语言,Python 在2023年依然将继续盘踞榜首。它被广泛应用于数据科学、人工智能、机器学习和自动化等领域,具有强大的库和生态系统,使其成为程序员必备技能。
2. JavaScript:作为Web开发的重要一环,JavaScript 在2023年仍然将继续受到广泛关注。随着Web技术的不断进化,JavaScript 的需求将继续增长。同时,JavaScript 也逐渐扩展到移动应用开发和后端开发领域。
3. Go:作为由Google推出的静态类型
编程
语言,Go 在近年来的发展迅速,并且在2023年有望进入到更多的应用场景。它以高效和简洁而著称,适合构建网络服务器、分布式系统和云计算等领域。
4. Rust:Rust 是一种系统级
编程
语言,具有强大的内存安全性和并发性能。尽管相对较新,但在2023年,Rust 有望获得更多关注,特别是在需要高性能和安全性的领域,如嵌入式系统、游戏开发和区块链等。
5. Kotlin:作为一种现代的静态
编程
语言,Kotlin 是编写 Android 应用的首选语言。随着 Android 开发者社区的增长,Kotlin 在2023年有望继续活跃,并与Java共同成为开发 Android 应用的主力。
需要注意的是,
编程
语言的发展和流行趋势是随时变化的,以上列出的是在当前预测下可能最值得学习的
编程
语言。但是,随着技术的不断发展,新的语言和工具可能会出现并成为未来更流行的选择。因此,学习新的
编程
语言只是一个方面,更重要的是掌握
编程
的核心概念和解决问题的能力。