`
phyeas
  • 浏览: 164348 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

面向對象還是面向數據

阅读更多
這幾天寫程序。突然想起一個問題。我到底是在寫面向對象的程序還是面向數據的程序。這個程序的整體設計上從數據庫開始的。可以說從數據庫設計完成的那一刻程序就已經定型了。DAO層,BIZ業務層,ACTION表現層。我不厭其煩地寫著。突然想起了以前學JAVA的 情景。跟現在完全是兩回事。那寫程序是否需要面向對象呢。面向對象的 意義在哪?
  到現在為止。我寫的很多程序都是從數據庫開始設計。導致程序過于面向數據。以數據為中心。而不是對象了。或許有人會說就是以對象為中心 。但是別忘了。我們在剛學 JAVA的時候學的那些。一切皆對象。現在的設計。打個比方。如果有一個Order(訂單 )類型的。下訂單的時候訂單狀態為“新創建”,然后收到貨款就是“已確認”。。等等狀態 。按照我現在的程序框架寫的話就是把轉換狀態的代碼寫在Biz業務里去。因為這些是業務的 一部分 。但是事實上,這些本該是Order所應該具有的行為,一張訂單。可以改變自身的狀態,在是符合面向對象的設計的。任何對象都有行為及其屬性,而現在人們用的 Hibernate映射把Entity映射成無行為的對象。我不敢說它錯了。但是至少這樣會使人們不知不覺吧行為放在另一個對象中 。而這就是所謂的數據訪問對象 。說到底。還是以數據為中心的思想根深蒂固。從學J2EE的那一刻起,我就被不斷地傳輸這分層的概念,把數據訪問和業務流程分開成了每天都必修課,但是其實只要做有什么好處呢。除了使代碼更加冗余。人們不斷地強調可維護。可擴展。但是面向對象的設計不久是更容易理解嗎。更容易理解的東西比任何多余的其他動作更容易擴展。
 我知道我的想法還不成熟。分層開發有它的好處所在。比如協作開發。更好的可測試性。更好的延展性。但是其實面向對象與分層開發并不矛盾。MVC。經典的分層模式,其M層并不是被定義成數據訪問層。所以在M層有很多可挖掘的面向對象的思想。C作為翻譯。V展現出對象的狀態。
  這次設計很失敗 。哈哈 。不過要以此為鑒。不斷提高。。我知道我說的不全是對的。也可能全是錯的。。誠心向各位請教 。
致謝。。

分享到:
评论

相关推荐

    面向对象 面向对象 面向对象

    7. **面向对象与面向过程对比**:面向对象编程与传统的面向过程编程相比,更注重数据和操作数据的方式,而非步骤的执行顺序。面向对象强调模块化和组件化,更适合处理复杂系统的构建。 8. **案例分析**:在实际开发...

    面向对象数据结构与软件开发

    ### 面向对象数据结构与软件开发 #### 核心知识点详解 ##### 一、面向对象编程(OOP)基础 **定义:** 面向对象编程是一种编程范式,它使用“对象”来设计软件。对象是数据和操作这些数据的方法的封装体。 **...

    数据结构(用面向对象方法与C++语言描述)课后答案

    《数据结构(用面向对象方法与C++语言描述)》是由殷人昆编著的一本经典教材,专注于讲解如何利用面向对象编程的思想和C++语言来实现和理解数据结构。这本书的第二版提供了深入的数据结构理论,同时也强调了实际编程...

    面向对象空间数据模型构建研究

    面向对象空间数据模型构建研究涉及的主要知识点如下: 1. GIS应用中的空间数据模型作用:空间数据模型作为GIS应用的关键和基础,其研究和优劣直接关系到GIS的发展。空间数据模型对于记录和表达地理空间至关重要,它...

    数据结构与算法--面向对象的C++设计

    本书标题为《数据结构与算法——面向对象的C++设计》,其内容主要围绕数据结构和算法在C++中的面向对象设计模式展开。本书不仅介绍了数据结构与算法的基本概念,还着重强调了面向对象编程范式(Object-Oriented ...

    数据结构(用面向对象方法和C++描述)殷人昆

    数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++描述)殷人昆 数据结构(用面向对象方法和C++...

    5-第五章:面向对象的数据模型和对象关系数据模型.pdf

    本章内容主要围绕面向对象的数据模型和对象关系数据模型展开,详细讲解了对象数据库管理系统(OODBMS)的特点、优势与劣势,以及与传统数据库管理系统(DBMS)之间的区别。同时,也涉及了对象关系数据库系统(ORDBMS...

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较

    面向对象强调的是数据的封装、继承和多态,通过类和对象的概念,提供了更好的代码组织方式和重用机制。面向对象编程使得软件模块化程度更高,可维护性更好,尤其在处理复杂问题和大型项目时,其优势更为明显。 面向...

    Labview面向对象编程

    1. **封装**:封装是面向对象编程的基础,它将数据和操作这些数据的方法绑定在一起,形成一个独立的单元,称为对象。在Labview中,可以通过创建类来实现封装,类包含属性(相当于数据)和方法(相当于操作)。通过类...

    数据结构与算法-面向对象的C++设计模式

    根据给定的文件内容,我们可以整理出以下知识点: **第1章 概要** - 本节的主题涉及面向对象设计模式在...通过本文件提供的内容,读者可以深入了解数据结构与算法的面向对象设计,并掌握如何在C++中实现这些设计模式。

    数据结构习题解析 用面向对象方法与C++语言描述

    在《数据结构习题解析:用面向对象方法与C++语言描述》一书中,作者深入浅出地解释了如何利用面向对象编程的概念和C++语言来实现和理解各种数据结构。 面向对象编程(Object-Oriented Programming,OOP)是一种编程...

    面向对象和面向过程的区别

    面向对象编程则是自顶向下的设计方法,它强调的是数据和操作数据的方法(即对象)的结合。在面向对象编程中,我们将问题领域内的实体抽象为对象,对象之间通过消息传递进行交互。继续以五子棋为例,面向对象的设计会...

    Python 3面向对象编程

    《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。, 《Python 3面向对象编程》不是Python 的入门书籍,适合...

    面向对象VS面向过程

    ### 面向对象与面向过程编程:对比与分析 #### 一、引言 在计算机科学领域,程序设计范式是定义如何构建和组织...无论是面向对象还是面向过程,关键在于找到最适合解决问题的方式,从而提高代码的质量和可维护性。

    数据结构的面向对象描述方法研究.pdf

    随着计算机科学的发展,数据结构的描述方法也在不断进步,尤其是面向对象(Object-Oriented,简称OO)方法的引入,对数据结构的描述方式产生了深远的影响。 面向对象方法最初成功应用于程序设计语言及其程序设计,...

    第16章 LabVIEW中的面向对象编程,labview面向对象的框架,LabView

    在LabVIEW中实现面向对象编程(Object-Oriented Programming, OOP)可以提升代码的可重用性、可维护性和组织性。本章将深入探讨LabVIEW中的面向对象编程框架及其应用。 面向对象编程的核心概念包括类(Class)、...

    漫画面向对象编程 Java

    面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及面向对象中的各种设计...

Global site tag (gtag.js) - Google Analytics