书中作者发现了一个现象,很多j2ee设计背离了oo原则:认为持久对象不应该包含任何行为。
作者认为仅仅暴露getter和setter的对象不是真正的对象,一个对象应该包含除了属性外还应该包含这个对象的行为。
联想到学过的所有对面向对象编程的解释,发现貌似真是如此。面向对象编程:所有的分析、设计、开发都以对象为基础。而对象又是什么呢,对象是现实中存在的抽象,是具体实物的逻辑表现。如果对马做抽象,我们自然的会发现:它有四条腿,它可以跑。
但是工作这么久却发现,国内流行的mvc,流行的三层,很多都不是面向OO的。
很多遗留项目中分三层后,只是根据行为做了横向切分:模型层就是一个个持久化对象,控制层就是一个个action或controller,表现层就是html或者jsp,一个业务对应一个或者多个action,后面跟着多个biz,和多个dao。每个对象要么全是方法,要么全是引用,或者全是属性,或者更狠的混成一团。现在想来,这TMD根本不是面向对象啊。。。这是面向过程啊。。。
也许项目在设计初始是根据对象设计的,但是后期业务添加或者修改后,已经通过代码看不到马有几条退,马是怎么跑的。。。
这就是我看到的国内OO现状,没有人注意到代码是什么,大家都在看功能实现了没,但是这种偏离设计原则的代码,维护性真的值得思考。。。
相关推荐
### 面向对象分析的发展现状 #### 一、面向对象概述 面向对象(Object-Oriented, OO)作为一种主流的软件开发范式,在当今软件工程领域占据着举足轻重的地位。面向对象的核心思想在于模拟现实世界中的事物,将它们...
##### 1.5 面向对象方法的发展史及现状简介 面向对象技术的发展始于20世纪70年代,最初由Simula 67编程语言引入,随后Smalltalk语言将其推广。到了80年代末至90年代初,随着C++、Java等语言的流行,面向对象技术...
面向对象测试技术是软件工程领域中的一个重要组成部分,其核心目标在于确保面向对象软件的质量和可靠性。本文基于《面向对象软件测试技术的研究与应用》一文,深入探讨面向对象测试的关键概念、测试层次、方法以及...
本书是一本论述 面向对象设计方法的专著,其第1版于2003年由清华大学出版社出版,被国内许多大学用作研究生或高年级本科生教材,并被许多软件开发单位作为工程技术用书。本次再版,根据国内外面向对象领域理论与技术...
面向对象分析与设计是一套以对象为基础的概念框架,它支持软件工程过程中的分析与设计活动,包括面向对象方法的基本原理、主要概念以及相关的历史与现状。面向对象方法的核心在于使用对象、类、继承以及多态等概念来...
面向对象分析与设计是软件工程中的关键步骤,它在创建高效、可维护的软件系统时起着至关重要的作用。在本案例中,我们关注的是基于B/S(Browser/Server)架构的火车售票系统,该系统利用面向对象的方法进行分析和...
与传统的结构化分析不同,OOA更侧重于对面向对象方法所需素材的归类和整理,而非仅仅关注业务现状的分析。 OOA模型包含五个层次:主题层、对象类层、结构层、属性层和服务层,以及五个活动:标识对象类、标识结构、...
#### 二、面向对象编程的历史与现状 尽管面向对象编程的概念已经存在多年,但它在近几十年里才成为主流的开发范式之一。C++等语言因其支持面向对象特性而被视为“新语言”,但实际上,即使使用纯ANSI C也可以实现...
面向对象课程设计的目标是让学生通过实际的项目开发,掌握软件工程中的分析、设计、编码、测试和文档编写等技能。本实例中,选取的课程设计主题是“宾馆客房管理系统”,这是一个典型的业务管理系统,旨在帮助宾馆...
本书是一本论述 面向对象设计方法的专著,其第1版于2003年由清华大学出版社出版,被国内许多大学用作研究生或高年级本科生教材,并被许多软件开发单位作为工程技术用书。本次再版,根据国内外面向对象领域理论与技术...
### 软件再造:面向对象的软件再工程模式 #### 概述 《软件再造:面向对象的软件再工程模式》是一本经典的重构指南,它深入探讨了面向对象技术在软件重构中的应用,旨在帮助软件开发人员和项目经理更好地理解和...
将面向对象的遗留系统迁移到SOA环境是一项复杂的工程,需要充分考虑系统的现状以及未来的发展方向。采用合适的方法和工具可以有效降低迁移过程中的风险和成本。通过本文提出的自下而上的服务识别方法,可以在一定...
面向对象方法实现SQL解释器.pdf 本文主要讨论了使用面向对象方法实现SQL解释器的设计思想和实现方法。在HBASE数据库管理系统中,SQL解释器是使用面向对象方法实现的。本文以HBASE*SQL为例,介绍了在“SQL+OOP”环境...
### 面向对象:对思政课网络资源课程一点看法! #### 一、思政课教师使用网络课程的基础 1. **当前网络课程的普及情况**:当前,网络课程和资源课程的数量众多,这是互联网技术发展的重要成果之一。网络课程因其...
面向对象技术是软件开发中的一种核心方法,它基于对象的概念,强调数据和操作数据的方法的封装,以及类的继承和多态性等特性。面向对象技术的实施在计算机科学,尤其是计算机专业教育中占据着重要地位,特别是在毕业...
同学录系统面向对象分析报告是一份详尽的文档,它涵盖了面向对象分析(OOA)和面向对象设计(OOD)的关键方面。这份报告的主要目的是为了理解用户需求,并基于这些需求构建一个高效、易于理解和维护的同学录系统。 ...
随着计算机技术的飞速发展,面向对象程序设计已成为软件开发中不可或缺的编程范式。为了适应这种趋势,《面向对象程序设计》课程作为计算机专业学生的基础课程,其教学质量直接影响到学生的专业能力培养。然而,在...
本文针对"分布式面向对象文件系统数据安全机制"这一主题,深入探讨了相关领域的研究现状和发展趋势。 首先,文章介绍了网络存储系统的发展趋势以及网络存储安全的基本概念和研究状况。网络存储安全主要包括网络安全...