对于开发者来说 由于数据结构的变化导致程序的修改无疑是让人头疼的 。尤其是那些频繁的修改 今天加一个字段 明天又加一个字段, 大量的时间都浪费在修改这些无关紧要的工作上了。
好了,言归正传 先看下面一个小例子
//商品类
public class Product{
private long productId;
private String category;
private String productCode;
private String productName;
}
//推荐商品类 ,如推荐到首页
public class RecommendProduct{
private String recommend_username;
private String recommend_date;
private Product product;
}
一般我们的设计就是这样
通过查询返回一个List<RecommendProduct>到首页, 操作完成
如果想下面这样设计就不太合理,而且也打破了类设计的原则----功能单一性
//商品类
public class Product{
private long productId;
private String category;
private String productCode;
private String productName;
//新添加字段
private String recommend_flag;//是否被推荐
private String recommend_username;
private String recommend_date;
}
好了 现在把这个设计照搬到数据的设计上
如果将product和recommendProduct设计在一张表中如下
Product表
product_id number(12)
category varchar2(16)
productCode varchar2(16)
productName varchar2(32)
recommend_flag char(1) //推荐标志位
一开始可能是这样
如果我要推荐到10个二级域名的首页怎么办?要加10个标志字段吗?显然这样做不行
采用面向对象的思想设计如下
Product表(只包含产品相关信息的字段)
product_id number(12)
category varchar2(16)
productCode varchar2(16)
productName varchar2(32)
RecommendProduct表(作为单独表 而不是一个标志为)
recommend_id (PK)
product_id (Fk)
recommend_username
recommend_date
这样做的另外一个好处是:两个表的变化是独立的 可以在RecommendProduct表中添加字段而不会影响到product表 如果设计在一起的话就会出现开头说的问题 今天加一个字段明天加一个字段情况
借鉴了一些面向对象设计的开闭原则
分享到:
相关推荐
面向对象的关系数据库设计是一种结合了面向对象编程思想和传统关系数据库管理系统(RDBMS)的设计方法。这种方法允许开发者使用面向对象的概念来定义和组织数据,从而更好地适应复杂的应用场景。 首先,我们要区分...
面向对象数据库技术是一种将传统的数据库管理系统与面向对象编程思想相结合的新型数据库技术,它旨在解决复杂数据类型管理和软件开发效率的问题。在80年代以后,随着应用需求的多样化,数据库技术开始引入面向对象的...
面向对象的压铸数据库系统建模是指借助面向对象思想来建立的关系型数据库管理系统(OODBMS)。这种系统可以将数据库中的每个描述实体都作为一个对象(Object),每个对象是唯一可标识的,并且对象是由描述实体所包含...
面向对象的压铸数据库系统是一种基于面向对象思想的关系型数据库管理系统(Object-Oriented Database Management System, OODBMS)。该系统的核心理念是将压铸过程中的各种实体(如压铸合金、浇注系统、型腔镶块等)...
本书以面向对象的软件工程思想为主线,细致深入地讲解了C#语言面向对象程序设计的方法和技巧,内容涵盖面向对象的基本概念、基于接口的设计、泛型程序设计方法、Windows和Web应用开发,以及数据库访问技术。...
面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在...
《妙解Hibernate 3.x:叩响面向对象思想之门》是一本深入解析Hibernate框架的专著,旨在帮助读者理解并掌握面向对象编程思想在实际开发中的应用,尤其是在使用Hibernate时如何有效地进行数据持久化。这本书是面向...
4. 培养学生掌握使用面向对象程序设计语言Borland C++和面向对象开发平台VisualC++等。 设计要求 本系统的设计要求主要有四点: 1. 培养学生应用面向对象程序设计方法和思想解决实际问题的能力。 2. 培养学生掌握...
在设计该系统时,我们采用了面向对象的设计思想,使用C++语言来实现系统的开发。我们首先对系统的需求进行了分析,然后对系统的总体方案进行了设计。接着,我们对系统的设计思路和主要步骤进行了分解,并对各个功能...
### 面向对象思想详解 #### 一、面向对象思想概述 面向对象(Object-Oriented, OO)思想作为一种程序设计范型,是软件工程领域的重要组成部分,它改变了传统程序设计的方式,使得软件开发更加贴近于现实世界的思维...
面向对象思想是软件开发中的一个重要概念,它将现实世界中的事物模型化为计算机程序中的类和对象,使得代码更易于理解和维护。在这个个人所得税计算程序中,我们可以看到这种思想的具体应用。 首先,让我们理解一下...
面向对象的压铸数据库基于面向对象思想的关系型数据库管理系统,其中每个描述实体被视为一个唯一的对象,包含一组数据和对这些数据的操作。对象可以归类到类中,类是一组具有相似性质的对象的集合。在OODBMS中,数据...
面向对象课程设计主要关注的是如何运用面向对象编程思想来构建一个实用的系统,例如这里的车辆管理系统。这个系统设计旨在将传统的车辆管理工作转变为自动化、系统化和规范化的管理模式,以提高效率和经济效益。以下...
他们强调概念模型设计的重要性,并提出了一种以面向对象思想为基础的设计方法,能够全面描述实际业务对象,提供统一的数据库概念模型设计。 3. **面向对象数据库关键技术** - 王功明、关永和赵春江在《微计算机...
【标题】"面向对象课程设计:学生信息管理系统"是一个典型的软件开发项目,旨在教授和实践面向对象编程技术在实际问题解决中的应用。这个系统的主要目标是管理学生的信息,包括但不限于姓名、学号、成绩等,这通常...
通过以上实验的学习,不仅能够掌握VB的基础操作,还能深入了解面向对象程序设计的思想和技术,为进一步开发复杂的应用程序打下坚实的基础。此外,实验还强调了数据库管理和多窗体设计的重要性,这些都是实际工作中...
第二版的《Java面向对象程序设计》课件旨在深入浅出地介绍这一关键概念,帮助学习者掌握Java语言的基础以及面向对象编程的核心思想。下面将详细阐述Java面向对象编程的基本概念、特性及其在实际开发中的应用。 1. ...
面向对象思想是软件开发中的核心概念之一,尤其在Java编程语言中被广泛应用。这个经典实例——英汉字典的设计,旨在帮助初学者理解面向对象的思维方式和软件分层模型的实践应用。 面向对象(Object-Oriented ...