iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java面向对象编程类的内聚性分析
  • 886
分享到

java面向对象编程类的内聚性分析

2024-04-02 19:04:59 886人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录类划分时关于内聚性的问题静态类的设计高内聚类的设计附:面向过程编程中模块的内聚性偶然内聚或巧合内聚(Coincidental)逻辑内聚(Logical):时间内聚(Tempora

类划分时关于内聚性的问题

静态类的设计

在软件设计中,我们经常会将一些通用的方法封装到一个类中,这种类只包含方法,没有属性,类中的方法之间没有关联,内聚性最低,属于偶然内聚或巧合内聚。这种设计常用于工具类,一般设计为静态类,这些方法的使用时类似函数调用。设计需注意,将功能基本接近的方法封装到一个类中,切忌不能将所有的公用方法封装到一个大类中,如:日期格式转换,数字转换字符串等。

高内聚类的设计

高内聚类的设计时,按照操作功能进行封装,需遵循单一职责原则,即每一个类完成规定的某一项任务。如:dao层的类用作数据的增删改查(CRUD),数据实体仅为数据载体,用作传递数据任务。即每个封装的类仅完成一项任务。
又如迭代器模式中迭代器仅为某一个集合进行服务,但是还要独立出来一个内部类,就是把集合数据的表示和对集合的遍历操作两项任务分开。
低耦合代表高内聚,在进行类的设计时,如类A的方法中调用了B类的方法,在A类定义属性变量或局部对象变量时,使用B类接口定义,通过注入或方法参数传入B的对象,使得二者之间形成一种松耦合的关系。如果一个类对外暴露的接口简单,接口的参数为简单数据类型,所有的复杂操作封装在类的内部,这种类内聚性最高,独立性强。如:通过短信猫发送短信,对外接口仅为sendMsg(String msg),如何创建连接、格式转换、信息发送全部封装类的内部。

附:面向过程编程中模块的内聚性

以下是面向过程中内聚性由高到低做一说明,对类划分时有一定的参考意义。

偶然内聚或巧合内聚(Coincidental)

内内的各成分之间没有关联,只是把分散的功能合并在一起;类A内有BCDE四个方法,这四个方法均为public方法,功能含义上各自独立。前端开发api,将不同模块的api放在一起,就是偶然耦合。


var api = {
   //登录
   getCaptcha: (param) => get(apiBase+"/captcha.jpg", param), 
   adminLogin: (param) => post(apiBase+"/sys/login", param),

   //部门管理
   departmentList:(param) => get(apiBase+"/tywdepart/list", param),
   departmentAdd:(param) =>post(apiBase+"/tywdepart/save", param),
   departmentUpdate:(param) =>post(apiBase+"/tywdepart/update", param),
   departmentDelete:(param) =>post(apiBase+"/tywdepart/delete", param),
   }

增强耦合度办法:拆分;将登录api要使用的api和部门管理api设计为两个独立的api。

逻辑内聚(Logical):

若干个逻辑相似的功能通过参数确定该模块对应哪一个功能。如:类A内有BCDE四个方法,这四个方法均为public方法,功能上类似,把它们封装在一起,如字符串转换函数工具类,包括int转字符串、double转字符串等。

时间内聚(Temporal ):

因为功能必须在同一时间内执行才写到一个模块,即这些功能只是因为时间因素才有关联。 例:程序初始化时,程序员把对所有全局变量的初始化操作放在模块A中,模块A中就是时间内聚。

过程内聚:

模块内部的处理成分是相关的,而且这些处理必须以特定的次序进行执行。一个模块,为某员工计算工龄工资:打开员工信息文件取出员工记录;按一定的算法计算工 龄;按一定的算法计算工龄工资。 该模块中的三个相对独立的子功能必须以特定次序执行,整个模块具有过程内聚

通信内聚(Communicational):

所有处理元素集中在一个数据结构的区域上。一个模块,接收一个远程传来的信息文件,保存,同时马上打印该文件。 该模块针对同一个文件操作,打印和存盘操作没有前后顺序关系,整个模块具有通信内聚。

顺序内聚(Sequential):

模块内的各个处理元素关注同一功能,顺序执行,前一元素的输出结果作为下一元素的输入。

功能内聚(Functional):

类内所有的功能成分均为了完成一项功能服务的,如:userDao都是为了完成用户数据库的增删改查(CRUD)服务的。

面向过程编程中模块的内聚性参考:
https://www.jb51.net/article/120602.htm

以上就是java面向对象编程类的内聚性分析的详细内容,更多关于java面向对象编程类的内聚性的资料请关注编程网其它相关文章!

--结束END--

本文标题: java面向对象编程类的内聚性分析

本文链接: https://www.lsjlt.com/news/154402.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java面向对象编程类的内聚性分析
    目录类划分时关于内聚性的问题静态类的设计高内聚类的设计附:面向过程编程中模块的内聚性偶然内聚或巧合内聚(Coincidental)逻辑内聚(Logical):时间内聚(Tempora...
    99+
    2024-04-02
  • Java 类与对象:对象导向编程的基石(深入分析)
    : 类:对象的蓝图 类是描述一组具有相同特征和行为的对象的模板。它定义了对象的属性(数据成员)和方法(行为)。类是抽象概念,不能直接实例化。 创建类: class Employee { private String name; ...
    99+
    2024-03-09
    : Java、类、对象、OOP、封装、继承、多态
  • Java面向对象之匿名内部类的示例分析
    小编给大家分享一下Java面向对象之匿名内部类的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!public class TestMot...
    99+
    2023-06-02
  • C++面向对象编程实例分析
    这篇文章主要介绍“C++面向对象编程实例分析”,在日常操作中,相信很多人在C++面向对象编程实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++面向对象编程实例分析”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-30
  • Java面向对象之方法中内部类的示例分析
    这篇文章主要为大家展示了“Java面向对象之方法中内部类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java面向对象之方法中内部类的示例分析”这篇文章吧。public cl...
    99+
    2023-06-02
  • js面向对象编程的示例分析
    小编给大家分享一下js面向对象编程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!//定义Circle类,拥有成员变量r...
    99+
    2024-04-02
  • Java面向对象中匿名内部类额示例分析
    这篇文章主要介绍Java面向对象中匿名内部类额示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!public class TestMoto {public static&n...
    99+
    2023-06-02
  • Python面向对象编程实例分析
    本文小编为大家详细介绍“Python面向对象编程实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python面向对象编程实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是面向对象编程(类)利用(...
    99+
    2023-06-29
  • 如何进行java面向对象编程原理的分析
    这期内容当中小编将会给大家带来有关如何进行java面向对象编程原理的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java 的核心是面向对象编程。事实上,所有的Java 程序都是面向对象的,你别无选择...
    99+
    2023-06-03
  • java面向对象的示例分析
    这篇文章主要介绍了java面向对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Java特效1、简单性人们希望构建一个无须深奥的专业训练就可以进行编程的系统,并...
    99+
    2023-06-29
  • 课时37:类与对象:面向对象编程
    目录:   一、self是什么   二、Python的魔法方法   三、公有和私有   四、课时37课后习题及答案   ***************** 一、self是什么 ***************** 对象的方法都有一个self...
    99+
    2023-01-30
    课时 面向对象 对象
  • Python面向对象中类和对象的示例分析
    这篇文章主要介绍了Python面向对象中类和对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是面向对象编程?我们是不是听过面向过程,拿来放在一起对比就比较好理...
    99+
    2023-06-22
  • Python面向对象编程入门实例分析
    这篇文章主要讲解了“Python面向对象编程入门实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python面向对象编程入门实例分析”吧!一、面向对象和面向过程1.两类软件开发设计方法...
    99+
    2023-07-06
  • Java面向对象之内部类详解
    目录前言内部类概述内部类的分类成员内部类局部内部类前言 在 Java 中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。本篇博客将总结内部类的使用。 内部类概述...
    99+
    2024-04-02
  • Java面向对象和内存分析图文详解
    一、Java类 类是面向对象编程中最基本的单位。 Java中的类包含三个内容,分别是: 属性 属性又叫成员变量。 属性用于定义类或类对象的数据(静态特征)。 ...
    99+
    2024-04-02
  • 浅谈Java面向对象之内部类
    目录内部类访问外部对象访问内部对象局部内部类匿名内部类静态内部类内部类 内部类是定义在另一个类中的类,例如 TalkingClock 类中内嵌了 TimePrinter 类: c...
    99+
    2024-04-02
  • Python面向对象和类的示例分析
    这篇文章主要为大家展示了“Python面向对象和类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python面向对象和类的示例分析”这篇文章吧。一、两大编程思想二、类与对象简单举例:p...
    99+
    2023-06-26
  • Python面向对象编程之类的封装
    目录1、封装的理解2、私有类属性、公开类属性、私有实例属性和公开实例属性2.1 公开类属性2.2 私有类属性2.3 公开实例属性2.4 私有实例属性2.5 私有属性不一定真的私有3、...
    99+
    2024-04-02
  • Python面向对象编程之类的运算
    目录1、运算概念的理解2、运算符的重载2.1 算术运算符2.2 比较运算符2.3 成员运算2.4 其他运算3、Python类的多态1、运算概念的理解 运算(Operation)是操作...
    99+
    2024-04-02
  • Python面向对象编程之类的继承
    目录1、对继承的理解2、类继承的构建3、Python中最基础的类4、ython类的重载4.1 属性重载4.2 方法重载5、类的多继承1、对继承的理解 继承(Inheritance) ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作