看到很多关于面向对象帖子,都在讲类的单一性,每一个类或模块只做“份内”之事,高内聚,低耦合....等等等等...对这些概念深意为然,完全能够理解,可是具体到业务上,却又迷惑了
在我们的业务开发的过程中一个业务节点(包括所有功能,增删查改业务操作等等)通常都是一个UI类,一个BO类,一个业务接口,一个VO类。
UI有自己的父类,用于方便的构建出界面,所以只需要实现特定的方法来操作具体的业务,如删除之前的确认,特定的弹出框选择数据等。
业务接口,也有自己的父接口(规定公共的基础功能),同时指定这个节点的具体业务(基本上都是与操作进行绑定,即一个操作对应一个接口的方法)
BO的父类,用于一些公共的基础功能,如取模板,调用存储过程,独立事物等,同时会实现自己的业务接口
VO就不说了,定义是一样的,只是也实现了自己的父类,有一些取设pk,取设字段的方法,主要是反射实现
我的结论:它很好用,编码方便,容易理解,容易看懂,容易调用,我们只需要完善业务上的功能,脱离具体的调用与界面构建等一系列麻烦事情。
也确实是高类聚了(所有节点的操作都整合到这个BO),低耦合了(一个业务节点与另一个没有任何关系)
但是对应到大家的帖子,却怎么都觉得有些别扭,不知道那个“份内”之事具体到业务上到底是什么意思。
我觉得讨论面向对象什么的时候,最好可以结合着业务说说...
分享到:
相关推荐
本文的重点在于展示如何在实际项目中应用UML,从而帮助读者更好地理解和掌握UML在面向对象分析与设计中的应用方法。 #### 前言 UML作为一种标准化的图形化建模语言,被广泛应用于软件工程中,用于描述、可视化、...
在UML诞生之前,面向对象领域存在多种不同的设计方法,如Booch、OMT、OOSE/Objectory、Fusion和Coad/Yourdon等,每种方法都有其独特的符号、过程和工具,导致了方法选择上的困惑和争执。这些方法的多样化反映了面向...
接着,引入面向对象的思想,提出分层解决方案,将数据库访问、业务逻辑和表示层分离,形成三层访问结构。 第一层是创建专门的数据库访问类,负责连接数据库,执行命令,返回数据,并允许动态设置数据库连接串,使得...
这部分内容探讨了在面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)中如何有效地运用usecase,解决实际开发中的困惑和挑战。 10. **如何确定actor** 在UML中,actor代表了与系统交互的外部实体,...
Scala语言同时支持面向对象和函数式编程特性,尤其是在函数式编程方面的特点使得scala程序代码十分精炼,极大提升了编程效率。然而,由于大多数学生的主要先修课程是面向对象语言(如Java或C++),这使得他们对于...
在图书管理系统中,Java的面向对象特性使得系统设计更为模块化,便于维护和扩展。此外,Java的跨平台性使得该系统可以在不同操作系统上运行,如Windows、Linux和Mac OS等。 2. **框架选择** Java开发通常会利用...
文章作者提出了一种结合案例驱动和项目驱动的教学模式,旨在提高学生的工程设计实践能力,使他们能够更好地理解和应用面向对象的开发技术。 在传统的“软件工程”和“软件系统分析与设计”课程中,学生往往因理论与...
JPA允许开发者使用面向对象的编程模型,而无需关心底层的SQL语句。 6. **JTA**:Java事务API提供了跨越多个数据源的事务管理功能,确保了分布式环境下的数据一致性。 JavaEE SPI则允许开发者通过实现特定接口来...
这份文档通过提供具体问题的解答,不仅帮助新员工解决日常工作中的困惑,还能引导他们深入理解阿里巴巴的技术文化和工程实践。它是一个宝贵的资源,能加速新员工的成长,使他们更快地在阿里巴巴的技术环境中找到自己...
2. **C++编程**:C++是一种面向对象的编程语言,常用于系统软件、应用软件、游戏开发等领域。论文中可能会介绍如何利用C++进行游戏逻辑、数据结构和算法的设计。 3. **网络编程**:在网络编程中,学生会学习到如何...
这份PPT学习教案详细介绍了客户部在处理提案时的关键方面,包括提案的方向、结构、困惑以及进展。 1. **客户部现有提案的方向**: 客户部的提案主要面向有特定需求的客户,旨在提供两方面的服务:一是能够提升品牌...
在提案过程中,客户部面临的主要挑战是如何体现广告的独特性,确保提案既符合广告行业标准又能引起客户兴趣。此外,如何恰当地呈现提案,保持合适的表达尺度,避免过于激进或保守,也是一个问题。特别是在没有成功...
作为JSP的基础支撑,Java是一种广泛使用的面向对象编程语言,具有良好的跨平台特性。开发者可以利用丰富的Java类库完成复杂业务逻辑的编写。 #### JSP语法 - **脚本元素**:如声明()、表达式()和脚本片段()。...
本书既考虑到实际开发中经常遇到的困惑和难题,也分析了解决问题的思路和方法,更总结出项目开发中不可或缺的技术点及思想。读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集...
本书既考虑到实际开发中经常遇到的困惑和难题,也分析了解决问题的思路和方法,更总结出项目开发中不可或缺的技术点及思想。读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集...
- **玩转Groovy**:Groovy是一种面向对象的语言,具有简洁易读的语法,适合快速原型开发和脚本编写。 - **与Java的不同点**:Groovy在语法上与Java类似,但在灵活性方面更为突出,如无需分号结束语句、支持动态类型...
在设计项目中,我们经常会遇到功能不可用的用户使用场景。当功能不可使用时,究竟是选择隐藏此功能入口,还是选择置灰显示,不可点击?或者是高亮显示,点击后反馈不可用?这都是设计师需要面临的困惑。因此,本文将...