`
gdpglc
  • 浏览: 87527 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

OO的环境下,需要控制对象

 
阅读更多
对象已经存在,但没有你需要的功能。这时需要在已有对象的基础上编写逻缉,这样的逻缉作为控制逻缉存在是合适的。

比如:String的 非null非空串判断

又如:调用别人提供的webservice API,一样存在类似的情况。

这说明,在现实的OO编程中,还是需要一部份逻缉是独立存在的,而它相关的数据不是和它在一个地方的。

这样的逻缉,因为不能随着对象的出现而出现,因此可能会写死到业务逻缉中,从而形成重复代码。
软件中的Helper或Util类就是用来放这种逻缉的地方。可以在任意位置使用。
分享到:
评论
2 楼 gdpglc 2011-11-18  
呵呵... 这例子很有启发。

我说的情况是对已有对象加入新功能时,需要Helper和Util。
你说的情况是多种操作之间存在共同的逻缉,这种重复不是因为没有恰好的对象分解,而是因为过程间存在相同的步骤,这些相同的内容可以封装,但是调用点以及调用结果对调用者控制流转的影响是无法避免重复的。

这时你说的方法很有效,这更向是AOP。
1 楼 悲剧了 2011-11-18  
比如在web开发里,登录用户信息存放到session里面,需要使用用户信息,就需要每次都判断session是否存在,还要判断里面是否存在user找个对象,造成很多冗余代码,而且污染了业务逻辑 代码也很难看

同一封装这些东西,写一个Helper或者util 比较好

但结合web可以根据路径对进入这下面的请求都所拦截,如果你找个请求里面不存在user,那么统一给处理

然后开发时候,在下面写的代码也不需要做任何判断,直接取接ok了

相关推荐

    写给大家看的面向对象编程书(第3版).[美]Matt Weisfeld(带详细书签).pdf

    15.2 Smalltalk的模型/视图/控制器 233 15.3 设计模式的不同类型 234 15.3.1 创建型模式 235 15.3.2 结构型模式 239 15.3.3 行为型模式 241 15.4 反模式 242 15.5 小结 243 15.6 参考书目 243 15.7 本章...

    软件工程与软件测试自动化教程

    2. 3 Panorama自动化测试工具和支撑环境 2. 3. 1 系统特点 2. 3. 2 采用领先的技术 2. 3. 3 Panorama工具系列和功能 第3章 软件工程范畴中软件测试的一般性理论 3. 1 基本概念 3. 1. 1 软件测试基础 3. 1. 2...

    skele-api:轻量级的REST API框架,可使用Slim快速轻松地进行API开发

    面向对象:主要用于控制器和模型的OO设计和PSR-4自动加载,以最大程度地减少“需求”调用。 轻量级:使用非常简单的代码就可以使其尽可能轻巧,快速。 它不使用其他供应商库,而是Composer&Slim。 它没有使用ORM...

    编程新手真言......

    无论你以为上述观点是惊天大秘或不过尔尔,你都需要这本书! -------------------------------------------------------------------------------------------------------------- Todo: 整合过长的目录 完善前二十...

    asp.net知识库

    与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库...

    软件工程师Java班课程

    Java OO程序 设计基础 J2sdk基础、Java 面向对象基础、Java API使用、数据结构及算法基础、Java高级类特性、异常处理。 掌握Java语言规范、面向对象编程基础(OOA/OOP) J2SE平台Java程序设计 Java AWT图形界面...

    外文翻译 stus MVC

    Adapter lets classes work together that couldn_t otherwise because of incompatibility interface" (from Design Patterns - Elements of Reusable OO Software by Gof). The client in this instance is the ...

    Spring.3.x企业应用开发实战(完整版).part2

    16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2 JUnit 4快速进阶 16.2.1 JUnit 4概述 16.2.2 JUnit 4生命周期 16.2.3 使用JUnit 16.3 模拟利器Mockito ...

    Spring3.x企业应用开发实战(完整版) part1

    16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2 JUnit 4快速进阶 16.2.1 JUnit 4概述 16.2.2 JUnit 4生命周期 16.2.3 使用JUnit 16.3 模拟利器Mockito ...

    QTP_8_用户手册中文版

    使用对象探测器查看对象属性................................................................36 使用对象探测器查看对象方法和方法语法..............................................39 目录 áî 第=Q=章:=...

Global site tag (gtag.js) - Google Analytics