首页 > 其他分享 >哪些代码设计看似是面向对象,实际是面向过程的?

哪些代码设计看似是面向对象,实际是面向过程的?

时间:2024-04-07 23:13:37浏览次数:31  
标签:贫血 定义 面向对象 面向 设计 看似 setter

1. 滥用 getter、setter 方法

在设计实现类的时候,除非真的需要,否则尽量不要给属性定义 setter 方法。除此之外,尽管 getter 方法相对 setter 方法要安全些,但是如果返回的是集合容器,那也要防范集合内部数据被修改的风险。

2. Constants 类、Utils 类的设计问题

对于这两种类的设计,我们尽量能做到职责单一,定义一些细化的小类,比如 RedisConstants、FileUtils,而不是定义一个大而全的 Constants 类、Utils 类。除此之外,如果能将这些类中的属性和方法,划分归并到其他业务类中,那是最好不过的了,能极大地提高类的内聚性和代码的可复用性。

3. 基于贫血模型的开发模式

这种开发模式是彻彻底底的面向过程编程风格的,这是因为数据和操作是分开定义在 VO/BO/Entity 和 Controler/Service/Repository 中的。

像 UserBo 这样,只包含数据,不包含业务逻辑的类,就叫作贫血模型(Anemic Domain Model)。同理,UserEntity、UserVo 都是基于贫血模型设计的。这种贫血模型将数据与操作分离,破坏了面向对象的封装特性,是一种典型的面向过程的编程风格。

标签:贫血,定义,面向对象,面向,设计,看似,setter
From: https://www.cnblogs.com/bloodcolding/p/18120137

相关文章

  • 面向对象设计原则实验之“合成复用原则”
    优先使用对象组合,而不是通过继承来达到复用的目的。某软件公司开发人员在初期的CRM(客户关系管理)系统设计中考虑到客户数量不多。系统采用Access作为数据库,与数据库操作有关的类(例如CustomerDAO类等)都需要连接致据库,连接数据库的方法getConnection()封装在DBUtil类......
  • SWEN20003面向对象软件开发项目
    SWEN20003面向对象软件开发项目1,2024墨尔本大学计算机与信息系统学院SWEN20003面向对象软件开发项目1,2024年第1学期发布时间:2024年3月25日星期一,美国东部时间晚上11:30首次提交截止时间:2024年3月28日星期四,美国东部时间晚上11:30项目截止时间:2024年4月17日星期三上午11:30在开......
  • Python学习(八):python面向对象编程
    文章目录python面向对象编程类的定义类的实例化类的静态变量与静态方法类的静态变量类的静态方法@staticmethod类的类方法@classmethod类的继承单继承多继承多层继承类方法的重写类方法的重载调用父类的方法super函数python面向对象编程面向对象(ObjectOriented)......
  • python面向对象(二)继承:最直接的代码复用
    继承简介继承是指通过在创建类时提供另一个类(称为父类)的名称,来获取父类的属性与方法。继承最明显的作用就是节约代码量,不需要重复定义已经存在的属性与方法。但是深入思考就会发现,复用只是继承的附带作用,继承最有意义的一点,是将不同的类联系了起来,让不同的类之间能够有一定的共性......
  • JetBrains PyCharm 2024.1 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE
    JetBrainsPyCharm2024.1(macOS,Linux,Windows)-面向专业开发者的PythonIDE请访问原文链接:JetBrainsPyCharm2024.1(macOS,Linux,Windows)-面向专业开发者的PythonIDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsPyCharm-面向专业开发......
  • 【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab
     ......
  • C++从入门到精通——初步认识面向对象及类的引入
    初步认识面向对象及类的引入前言一、面向过程和面向对象初步认识C语言C++二、类的引入C++的类名代表什么示例C++与C语言的struct的比较成员函数访问权限继承默认构造函数默认成员初始化结构体大小总结前言面向过程注重任务的流程和控制,适合简单任务和流程固定的......
  • 软件系统质量属性_2.面向架构评估的质量属性
        为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。1.性能     性能(Performance)是......
  • rust 面向对象编程特性、模式与模式匹配、高级特征
    面向对象编程OOP学习了结构体、枚举,它们可以包含自定义数据字段,也可以定义内部方法,它们提供了与对象相同的功能。面向对象的四大特征:封装、继承、多态通过pub标记为公有的结构体,在其他模块中可以访问使用这个结构体。但是对于结构体内部字段,如果不用pub,则仍是私有的,则可以通过......
  • 面向对象--三大特征--继承
    1.继承:继承是面向对象三大特征之一,可以让类与类之间产生子父的关系.2.继承的格式:Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立继承关系.publicclassStudentextendsPerson{}Studnet称为子类(派生类),Person称为父类(基类或者超类).3.使......