`

封装的意义

阅读更多

Ask:

封装的意义是?
不是可以通过set***()方法和get***()方法得到或修改他的值,那么意义如何体现呢?

想了好久,好乱

另外,什么叫工厂方法呢?

求前辈指点迷津

我知道封装是为了数据的安全性,但是............

Answer:

set   /   get   方法可以对对象中的某一个属性进行操作,访问这些数据对外只提供了这么一个接口。

如果不提供这些方法,属性若为   private   就变得无法访问了。

如果属性变为   public,就好比,到银行去存钱,不是通过柜面进行操作的,而是直接跑到银行的金库里面自己去拿钱了,这样就很不安全,这个例子中,可以把银行金库中的钱看作是某一对象的属性,而柜面的工作人员、出纳柜台就可以看作是   set   /   get   方法了,也就是让对外服务提供某些接口,具体里面的操作就隐藏起来了。

工厂方法指的是根据不同的情况产生不同的对象,比如:

public   static   Dao   getDao(String   dbmsName)   throws   UnsupportDatabaseException   {
  if(   dbmsName.equalsIgnoreCase( "SQL   Server ")   )   {
    return   new   SqlServerDao();
  }   else   if(   dbmsName.equalsIgnoreCase( "Oracle ")   )   {
    return   new   OracleDao();
  }   else   if(   dbmsName.equalsIgnoreCase( "MySQL ")   )   {
    return   new   MySQLDao();
  }   else   {
    throw   new   UnsupportDatabaseException(dbmsName);
  }
}
其中   Dao   是   SqlServerDao、OracleDao、MySQLDao   的接口。

上面这段代码就是一个典型的工厂方法,通过传入的数据库名称来确定,并获得不同的数据库处理实现。若使用的数据库并没有实现,则进行异常处理。

****************************************************************

set/get方法都实现了当然可以读写。
但是,如果该数据只允许外部读取,就可以不实现set方法:封装

还有一个作用是,实际的属性和返回类型不一样:如用布尔值代表性别,但是看的时候希望看到男性女性,就
get方法为:
String   getSex(){
    if(set}   return   "男性 ";
    return   "女性 ";
}
这也是一种封装,用的人并不需要关心存的是什么东西

*********************************************************************

封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。封装能为软件系统带来以下优点:


(1)便于使用者正确的方便的理解和使用系统,防止使用者错误修改系统的属性。还是以供电系统为例,过去房屋墙壁的上方都是电线,现在的房屋里电线都 "不见 "了,在墙壁上只露出了一些电源插口。为什么要把电线藏起来呢?理由很简单,暴露在外面的电线不安全也不美观。
再比如电视机系统,尽管它本身的实现很复杂,但用户使用起来却非常简单,只要通过遥控器上的几个按钮就能享受电视机提供的服务。电视机的实现细节被藏在它的大壳子里,没有必要向用户公开。
(2)有助于建立各个系统之间的松耦合关系,提高系统的独立性。当某一个系统的实现发生变化,只要它的接口不变,就不会影响到其他的系统。
(3)提高软件的可重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用。例如干电池就是一个可重用的独立系统,在相机、手电筒、电动剃须刀和玩具赛车中都能发挥作用。
(4)降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。例如相机损坏了,它的干电池依然有用,可以安装到手电筒中。
一个设计良好的系统会封装所有的实现细节,把它的接口与实现清晰的隔离开来,系统之间只通过接口进行通信。面向对象的编程语言主要是通过访问控制机制来进行封装,这种机制能控制对象的属性和方法的可访问性。
摘自《Java面向对象编程》一书,作者:孙卫琴

 

 

 

分享到:
评论

相关推荐

    可控硅最后工艺封装的意义?

    以下将详细介绍可控硅封装的意义。 首先,封装的主要目的之一是保护芯片不受外界环境的影响。半导体器件的芯片非常脆弱,任何细小的灰尘、潮气、温度或电压波动都有可能导致其损坏,从而影响其正常工作。通过封装...

    电子元器件封装大全 电子元器件封装大全

    下面我们将深入探讨封装的意义、种类以及在PCB设计中的应用。 封装的主要目的是保护电子元器件,防止外界环境如灰尘、湿气等对内部电路造成损害,同时提供电气连接和机械支撑。此外,封装也决定了元器件在PCB板上的...

    allegro在pcb中替换其他封装方法

    ### allegro在PCB中替换其他封装方法 在电子设计自动化(EDA)领域,Cadence Allegro是一款功能强大的PCB设计软件,广泛应用于各种复杂的电路板...这些技巧对于提高设计效率、解决设计过程中遇到的问题具有重要意义。

    miniUSB.rar_mini USB封装_miniUSB_mini_USB封装_miniusb封装_miniusb贴片封装

    《迷你USB封装详解》 ...同时,随着科技的发展,虽然Mini USB已逐渐被Micro USB和USB Type-C所替代,但其在一些旧设备和特定领域的应用仍然广泛,因此对于Mini USB封装的了解和研究仍然具有重要的实践意义。

    RJ45 3D封装 适用于AD

    首先,我们要了解RJ45 3D封装的意义。在电路板设计中,3D封装不仅提供了视觉上的帮助,使得设计师可以直观地查看组件在板上的位置,避免物理冲突,还可以与机械外壳进行配合,确保整体设计的完整性。3D封装库通常...

    立创商城PCB标准封装库.zip

    《立创商城PCB标准封装库详解》...掌握好这个封装库的使用,对于提升PCB设计技能,完成高质量的电路板设计具有重大意义。同时,持续关注立创商城的更新,能帮助设计师及时获取最新的封装信息,适应不断发展的电子技术。

    PCB封装库命名规则

    ### PCB封装库命名规则 #### 一、引言 在电子设计自动化(EDA)领域,PCB...掌握这些规则对于提高工作效率、减少错误以及促进团队合作具有重要意义。希望本文能为广大电子工程师提供参考,并在实践中加以应用和完善。

    天线pcb封装库,pcb元件封装库,C/C++

    对于C/C++编程环境,这些封装库的意义在于,它们可以帮助开发者在软件层面更好地控制和配置天线的参数,比如通过编程来改变工作频率、调整功率输出或者实现动态频率选择。这在现代物联网、无线传感器网络和射频识别...

    PHB2.0封装(三维PCB封装库)AD用PCB封装库

    标题中的“PHB2.0封装(三维PCB封装库)AD用PCB封装库”指的是在电子设计自动化(EDA)领域中,一种专门用于Altium Designer(AD)软件的...因此,像PHB2.0这样的高质量封装库对于提升PCB设计质量和效率具有重要意义。

    声表产品封装形式尺寸图.doc

    总之,“声表产品封装形式尺寸图.doc”文件提供的信息,为我们深入了解声表产品的封装形式和尺寸规格提供了宝贵的资料,对于推动声表技术在各个领域的应用具有重要意义。在实际应用中,技术人员应根据具体需求,合理...

    protel元件常用封装和符号

    Protel 元件常用封装和符号 Protel 是一款广泛应用于电子设计自动化(EDA)的软件,能够帮助设计师...Protel 中的元件符号和封装类型是电子设计自动化的基础,了解这些符号和封装类型对于设计电子电路板具有重要意义。

    PCB封装设计规范

    PCB(Printed Circuit Board,印刷电路板)封装设计规范是指导电子...总之,PCB封装设计规范是一个涵盖了从标准引用到具体设计参数的全方位指导性文件,它对于保证PCB装配质量、提升产品性能和可靠性具有重要的意义。

    39脚1.5寸TFT屏PCB封装库(AD库,封装带3D视图)

    3D视图的加入对于确保元器件在实际组装过程中的互配性和可操作性具有重要意义。 在这个特定的库中,除了1.5寸TFT屏的封装外,还包含了一些其他库,这意味着用户可以获得更多的元件模型,从而满足更广泛的电路设计...

    微系统封装基础

    微系统封装基础这一概念涉及的是微电子领域的关键环节,即如何将微小型的电子元件和...掌握这些基础知识对于从事微电子封装设计、生产及应用的专业人士来说至关重要,对于推动微系统的创新和进步具有重要的指导意义。

    ad9.0pcb封装库

    在电子设计领域,PCB(Printed Circuit Board)封装库是至关重要的资源,它包含了电子元件的各种物理尺寸和连接信息,使得...理解和掌握封装库的使用方法以及相关设计原则,对于提升电子设计的专业水平具有重要意义。

    防静电无铅垃圾桶PCB封装库(AD库,封装带3D视图)

    然而,在这里,它可能是对这个封装库的一种形象化命名,暗示这个库是用于清理或优化设计流程的工具,而不是实际意义上的垃圾桶。 在压缩包子文件的文件名称列表中,"3.40-防静电-无铅标识.PCBLIB"可能是这个库的主...

    芯片封装LQFPAltium Designer PCB 3D封装.zip

    标题“芯片封装LQFPAltium Designer PCB 3D封装.zip”揭示了这是一个与电子设计相关的资源包,特别关注的是芯片封装技术中的LQFP(Low ...在电子设计领域,这样的资源对于优化设计流程、缩短产品开发周期具有重要意义。

    电感封装形式和贴片电阻电容电感封装的尺寸

    在电子元器件的世界里,电感、电阻和电容作为三大基本元件,其封装形式和尺寸的选择对于电路设计和性能有着至关重要...在电子技术日新月异的今天,掌握这些基础知识对于提升电子产品的设计水平和生产效率具有重要意义。

    基于iview二次封装实用组件

    这就是进行二次封装的意义所在——根据项目特点和团队习惯,对iview原生组件进行改造,创建符合特定业务场景的自定义组件。 二次封装iview组件通常包括以下几个步骤: 1. **需求分析**:首先明确项目中需要的特定...

    最全的protel99se用的PCB封装库

    Protel 99SE是一款经典的电路设计软件,广泛应用于电子设计自动化(EDA)领域,尤其在PCB(印制电路板)设计方面有着广泛的用户基础。...掌握这个库的使用方法和封装知识,对于提升电子设计的专业水平具有重要意义。

Global site tag (gtag.js) - Google Analytics