关于封装的设计

原创 2004年08月16日 08:59:00
徐晶
2004-7-8

----
封装的概念经常在软件开发过程中遇到,这个概念似乎比较空旷,找不到一个准确的定义,而且不同的文章所涉及的点均不同。 其实就大的方面而言共有两种层次的封装:1.技术封装 2.业务(也称为软件功能)封装。
----先说说技术封装:它是最最常见的,总是为了实现一个特定的技术问题而把一些实现细节给封装到一个函数中。举个例子: 数据库程序里经常用到的一个小功能就是把数据库表的一个字段的纪录放在下拉框中,如图中把公司表的缩写字段放在一个下拉框中,对于这个简单的功能可以封装在一个小的函数中来实现,只要告诉这个函数几个条件就可以了 1.要从那张表来提取数据2.该表中的字段名3.要在哪个下拉控件中显示,故可以定义这样的函数 GetCombolValue(string TableName,string FieldName,ComboBox cboName) 。
----然而该函数只是对常见的技术动作做了一个简单的封装,没有涉及到应用方面,好像一个简单的工具做好了放在那里,当用这些工具再去构建很大的系统时便会出现很繁琐的问题。比如说现在有一个系统:共有5大模块,每一个模块都要导入采购数据,如果分别为各模块书写函数的话将很繁琐,因此可以考虑将导入采购数据这个"业务"封装起来,这一层的封装比刚才说到的技术封装又高一层次,该层次是通过调用技术封装好的各个函数组合成的具有独立功能意义的功能块
----现在一个个独立的功能块已经实现了,但是又会遇到这样的问题。 假如系统分为采购,库存,财务等等8个模块,那时候的功能块将变得非常的缭乱,这时候还需要按照模块来组织这些小的功能块。如此一个初步的业务封装便形成了。比如可以把各个和采购有关的操作封装在类Purchase中,其中的一个功能导入采购数据可以作为Purchase的一个方法(子函数)。这样结构就清晰了。
----封装的设计过程中有许多的原则,最基本的一个原则就是功能的独立性,一个独立的子功能的实现只能实现一次。 举个例子:数据库程序中一般会有一个全局的连接字符串,这个字符串的拼凑牵涉到具体的数据库, 不同的数据库格式不同,对于这种细节只需要放在一个函数中实现就可以了,没必要在每次用到的时候再去拼凑。

Java设计模式之封装算法的模板模式

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有...
  • u013035477
  • u013035477
  • 2015年10月02日 21:45
  • 898

WebApi系列~基于单请求封装多请求的设计

怎么说,单请求封装多请求,这句话确实有点绕了,但还是要看清楚,想明白这到底是怎么一回事,单请求即一次请求(get,post,put,delete),封闭多请求,即在客户端发送的一个请求中可能包含多个子...
  • make1828
  • make1828
  • 2015年11月16日 18:06
  • 707

一文看懂IC芯片生产流程:从设计到制造与封装

origin: http://forum.esm-cn.com/FORUM_POST_1000163993_1201257744_0.HTM?_ga=1.101949507.338942905.143...
  • yazhouren
  • yazhouren
  • 2016年03月05日 18:41
  • 7556

面向设计的半封装web组件开发(概要版)

by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=4892 本文...
  • u013291076
  • u013291076
  • 2015年08月13日 23:29
  • 286

面向对象——(9)封装和接口

封装:每个对象都包含它能进行操作所需要的所有信息,这个特性叫封装,因此对象不必依赖其他对象来完成自己的操作。   它有两重含义:第一,它把对象的属性和服务结合成一个独立的系统单位(即对象);第二,“信...
  • u010066934
  • u010066934
  • 2014年03月12日 19:52
  • 2418

个人封装的一个Camera类

本文转自:http://blog.csdn.net/wz331956750/article/details/24291479
  • FightForFuture2013
  • FightForFuture2013
  • 2014年04月22日 11:07
  • 1736

PCB设计中元器件的封装和孔的设计标准

一、PCB设计元器件封装库设计标准 1、贴片元器件通过回流焊和波峰焊应采用不同封装,波峰焊(红胶工艺)的板贴片容阻件首选使用0805封装的; 2、部分元气件标准孔径及焊盘 元...
  • pcb_honglijie
  • pcb_honglijie
  • 2016年10月15日 09:10
  • 1816

allegro入门笔记-部分常用操作与自定义封装的制作

读书千遍,不如下手做这么一遍,cadence这个软件上手较难,但如果养成使用习惯还是获益匪浅的,原理图的操作比较简单,不多赘述,我们将重心放到对PCB操作的学习上。     常打开Allegro pc...
  • linux_mail
  • linux_mail
  • 2015年01月29日 11:17
  • 691

浅谈封装变化

软件设计最大的敌人,就是应付需求不断的变化。变化有时候是无穷尽的,于是项目开发就在反复的修改、更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软...
  • liudavi
  • liudavi
  • 2015年12月28日 10:22
  • 447

C语言实现封装,继承

1.C语言实现封装在C语言当中,是不存在封装这一个特性的,我们要实现它,我们可以借助两个方法:1.利用C语言中的头文件,在头文件中进行声明,在C文件中对它进行定义,这样就可以隐藏内部信息,用户只能看到...
  • qq_26768741
  • qq_26768741
  • 2016年09月17日 14:34
  • 683
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于封装的设计
举报原因:
原因补充:

(最多只允许输入30个字)