这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
看了一些J2EE和Java/web开发方面的内容,说个个人的感受和不客气的话,感觉POJO这东西就相当于C语言的struct了,完全把面向对象这一个概念给糟蹋了。
换句话是,这个概念的产生本质上就是荒谬和毫无意义的。我之前读《重构》时,非常欣赏Martin Fowler,现在我觉得他更多是炒概念和名词。
从 面向对象的精神实质上来讲,一个类,应该有什么方法,由其业务层面的定义出发来分析的。举个例子,例如Admin这样一个类,自然拥有修改自身口令的方法 changePassword,自然拥有“修改自身信息”的方法,modifySelfInfo(),不管你什么POJO还是EJB,还是Spring里的Bean,什么充血模型、贫血模型。
所谓“数据对象”这个词,实际上是从技术的观念和实现方法,给上推到设计领域的,这种“上推”不是很好的一种路子,设计应该不被实现技术所绑架,应该是从业务领域去分析。
我相信,不管设计开发的方法论发展到了什么时候,都需要从事物(或者系统,或者产品)的本质出发,来分析、设计、实现。
或者说,业务逻辑应该放在哪里?我认为这是一个伪问题,或者说不成为问题。因为业务层面上在哪里,设计实现的时候也就在哪里。上面的例子已经说清楚了。
相关推荐
文件结尾是.cfg,则它认为这是一个 config admin 资源,创建或更新由文件名确定的 pid 的 Config Admin 服务配置。 CXF 框架是一种基于 Servlet 技术的 SOA 应用开发框架,要正常运行基于 CXF 应用框架开发的企业...
- **货币**:创建一个货币值对象,可以确保货币值的正确表示和计算,避免因货币转换和精度问题引发的错误。 实现值对象通常涉及以下步骤: 1. **定义类**:创建一个类,包含所需属性,并声明为私有,以确保外部...
然而,随着新的技术如Spring MVC的出现,Struts2逐渐被许多开发者认为是过时的技术,因为它相对较重且配置较为繁琐,但作为一个历史性的技术,它对于理解现代Web框架的设计原理仍然具有重要意义。
而JPA引入了POJO(Plain Old Java Object)的概念,允许任何普通的Java类被标记为JPA实体,这样它们的非临时字段就可以被持久化到数据库中,无论是EJB容器内部还是外部的Java SE应用。批注是JPA实现ORM的关键,它...
8. `name`:指定持久化类的全限定名,如果不指定,Hibernate会认为这是一个非POJO实体映射。 9. `table`:对应的数据库表名,如果不指定,将使用类的非全限定名。 10. `discriminator-value`:在多态映射中,用于...
- **轻量级SOA**:REST被认为是SOA的一种轻量级实现,适合互联网应用和企业级系统的分布式服务。 5. **REST请求实例** - 同样的资源路径(如/advertiser/1)可以结合不同的HTTP方法执行不同的业务操作,如GET获取...
- **Hibernate**:一个开放源代码的对象关系映射(ORM)框架,允许开发者将Java对象映射到关系型数据库表,并管理这些对象的生命周期。 - **对象关系映射(ORM)**:一种编程技术,用于将面向对象的数据模型(通常是...
- **EJB3.0**:由IBM、BEA和Oracle等巨头支持,主要针对企业级应用开发,简化了EJB的设计模型,引入了POJO、IoC等概念。 - **JDO2.0**:相对低调,但在某些场景下被认为是更好的选择,尤其是在ORM(对象关系映射)...
BeetSql是一个全面而强大的DAO工具,它融合了Hibernate与Mybatis的优点,特别适合那些认为SQL语言处于核心地位,同时也希望利用工具自动生成大量常用SQL的应用程序。 - **开发效率**: 使用BeetSql时,开发者无需...