精华内容
下载资源
问答
  • 信息素养的基本概念 信息素养的概念是保罗泽考斯基(Paul Zurkowski)最先提出的,他认为有信息素养的人必须能够确定何时需要信息,并且具有检索、评价有效使用所需信息的能力。 Bruce提出有信息素养的人应该具有...
  • 信息的基本概念

    2019-10-16 10:15:51
    因为想考信息系统项目管理师,虽然这次软考没有报名(错过了时间)但是还是买了书来学习,争取一次就过,记录学习过程中的知识点,以便于复习。...物质决定精神,物质的普遍性决定了信息的普遍存在。...

    因为想考信息系统项目管理师,虽然这次软考没有报名(错过了时间)但是还是买了书来学习,争取一次就过,记录学习过程中的知识点,以便于复习。打一遍的目的就是让自己记得更深刻。

    1.信息具有的特征

    (1)客观性。信息是客观事物在人脑中的反映,而反映的对象则有主观和客观的区别。因此信息分为主观信息与客观信息。主观信息必然要转换成客观信息。

    (2)普遍性。物质决定精神,物质的普遍性决定了信息的普遍存在。

    (3)无限性。客观世界是无限的,反映客观世界的信息自然也是无限。无限性可以分为两个层次:一是无限的事物产生无限的信息。二是每个具体的事物或有限个事物产生无限的信息。(无数个对与吃饭可以产生无限个信息,一个人对于吃饭(时间不同)也可以产生无限个信息)。

    (4)动态性。信息是随着时间的变化而变化的。

    (5)相对性。不同的认识主体从同一事物中获取的信息以及信息量可能是不同的。

    (6)依附性。信息的依附性可以重两个方面来理解,一方面,信息是客观世界的反映,任何信息必然由客观事物所产生,不存在无源的信息;另一方面,任何信息都要依附于一定的载体而存在,需要有物质的承担者,信息不能完全脱离物质而独立存在。

    (7)交换性。信息通过处理可以实现变换和转换,使其形式或内容发生变化,以适应特定的需要。

    (8)传递性。信息在时间上的传递就是存储,在空间上的传递就是转移或扩散。

    (9)层次性。客观世界是分层次的,反映他的信息也是分层次的。

    (10)系统性。信息可以表示为一种集合,不同类别的信息可以形成不同的整体。因此,可以形成与现实世界相对应的信息系统。

    (11)转换性。信息的产生不能没有物质,信息的传递不能没有能量,但是有效的使用信息,可以将信息转换为物质或能量。

    2.信息的质量属性

    (1)精确性。对事物状态精确的描述。

    (2)完整性。对事物状态描述的全面程度,完整信息应包括所有重要事实。

    (3)可靠性。指信息的来源、采集方法、传输的过程是可以信任的,符合预期的。

    (4)及时性。指获得信息的时刻与事件发生时刻的间隔长短。

    (5)经济性。指信息获取、传输带来的成本在可以接受的范围之内。

    (6)可验证性。指信息的主要质量属性可以被证实或证伪的程度。

    (7)安全性。指在信息的生命周期中,信息可以被非授权访问的可能性,可能性越低,安全性越高。

    3.信息的功能

    (1)为认识世界提供依据。人们认识世界,首先,首先要获取认识对象的有关信息,并通过对这些信息的加工获得有关知识,从而形成正确的认识。

    (2)为改造世界提供指导。人们认识世界的目的是改造世界,而改造世界就必须有正确的观念作为指导。

    (3)为有序的建立提供保证。人们所有活动的目的都是使得客观世界变得更加有序。这种有序至少包括两种情况,一是使得本来有序的客观世界得到改善,变的更加有序;二是打破原来的有序,建立一种新的有序。无论哪种情况都需要有信息的保证。

    (4)为资源开发提供条件。人类社会的生存和发展要建立在资源之上,所有这些资源可以分为两类,即有形资源和无形资源,无论开发有形资源或无形资源都需要信息。

    (5)为知识生产提供材料。生产是人类生存或发展的基础或前提,包括物质产品与精神产品的生产。其中知识的生产是精神产品生产的主要内容,而信息则为知识生产提供材料。

    4.信息的传输模型

    信息只有流动起来,才能体现其价值,因此信息的传输技术(通常指通信、网络等)是信息技术的核心。信息的传输模型如下图所示:

    • 信源:产生信息的实体,信息产生后由这个实体向外传播。
    • 信宿:信息的归宿或接受者。
    • 信道:传输信息的通道,如TCP、IP网络。信道可以从逻辑上理解为抽象通道,也可以是具有物理意义的实际传输通道。
    • 编码器:在信息论中是泛指所有变换信号的设备,实际上就是终端机发送部分。它包括从信源到信道的所有设备,使信源输出的设备转换成适于信号传道传送的信号。从信息安全的角度出发,编码还可以包括加密设备,加密设备利用密码学得知识对编码信息进行加密再编码。
    • 译码器:译码器是编码器的逆变设备,把信道上送来的信号(原始信息与噪声的叠加)转换成信宿能接受的信号,可包括调解器、译码器、数模转换器等。在QQ应用中,TCP/IP包被解析,信息将显示在信宿的电脑屏幕上,发送者传输信息的不确定性消除了。
    • 噪声:噪声可以理解为干扰,干扰可以来源于信息系统分层结构中的任何一层,当噪声携带的信息大到一定程度时,在信道中传输的信息可以被噪声掩盖导致传输失败。

    一般情况下,信息系统的主要信能指标是他的有效性与可靠性。有效性就是在系统中传送尽可能多的信息;而可靠性是要求信宿收到的信息尽可能地与信源发出的信息一致,或者说失真尽可能小。为提高可靠性,在信息编码时,可以增加冗余编码,适当的冗余编码可以在信息收到噪声干扰时被恢复,而过量的冗余编码将降低信道的有效性和信息传输速率。

    信息系统的基本规律应包括信息的度量,信源特性和信源编码、信道特性和信道编码、检测理论以及密码学。

    展开全文
  • 特征提取是计算机视觉图像处理中一个概念。它指是使用计算机提取图像信息,决定每个图像点是否属于一个图像特征特征提取结果是把图像上点分为不同子集,这些子集往往属于孤立点、连续曲线或者...

    一、特征提取概念

    特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。

    二、特征概述

    至今为止特征没有万能和精确的定义。特征的精确定义往往由问题或者应用类型决定。特征是一个数字图像中“有趣”的部分,它是许多计算机图像分析算法的起点。因此一个算法是否成功往往由它使用和定义的特征决定。因此特征提取最重要的一个特性是“可重复性”:同一场景的不同图像所提取的特征应该是相同的
    特征提取检查每个像素来确定该像素是否代表一个特征。假如它是一个更大的算法的一部分,那么这个算法一般只检查图像的特征区域。作为特征提取的一个前提运算,输入图像一般先在尺度空间中被平滑,此后通过局部导数运算来计算图像的一个或多个特征。
    有时,假如特征提取需要许多的计算时间,而可以使用的时间有限制,一个高层次算法可以用来控制特征提取阶层,这样仅图像的部分被用来寻找特征。
    由于许多计算机图像算法使用特征提取作为其初级计算步骤,因此有大量特征提取算法被发展,其提取的特征各种各样,它们的计算复杂性和可重复性也非常不同。
    下面是用来描述图像的一些基本概念:

    1.边缘

    边缘是组成两个图像区域之间边界(或边缘)的像素。一般一个边缘的形状可以是任意的,还可能包括交叉点。在实践中边缘一般被定义为图像中拥有大的梯度的点组成的子集。一些常用的算法还会把梯度高的点联系起来来构成一个更完善的边缘的描写。这些算法也可能对边缘提出一些限制。局部地看边缘是一维结构。

    2.角

    角是图像中点似的特征,在局部它有两维结构。早期的算法首先进行边缘检测,然后分析边缘的走向来寻找边缘突然转向(角)。后来发展的算法不再需要边缘检测这个步骤,而是可以直接在图像梯度中寻找高度曲率。后来发现这样有时可以在图像中本来没有角的地方发现具有同角一样的特征的区域。

    3.区域

    与角不同的是区域描写一个图像中的一个区域性的结构,但是区域也可能仅由一个像素组成,因此许多区域检测也可以用来监测角。一个区域监测器检测图像中一个对于角监测器来说太平滑的区域。区域检测可以被想象为把一张图像缩小,然后在缩小的图像上进行角检测。

    4.脊

    长条形的物体被称为脊。在实践中脊可以被看作是代表对称轴的一维曲线,此外局部针对于每个脊像素有一个脊宽度。从灰梯度图像中提取脊要比提取边缘、角和区域困难。在空中摄影中往往使用脊检测来分辨道路,在医学图像中它被用来分辨血管。
    特征被检测后它可以从图像中被抽取出来。这个过程可能需要许多图像处理的计算机。其结果被称为特征描述或者特征向量。

    三、常用图像特征概述

    常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征。

    1.颜色特征

    1.1基本概念
    颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献。由于颜色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征。另外,仅使用颜色特征查询时,如果数据库很大,常会将许多不需要的图像也检索出来。颜色直方图是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响,进一步借助归一化还可不受图像尺度变化的影响,基缺点是没有表达出颜色空间分布的信息。
    1.2常用的特征提取与匹配方法
    (1) 颜色直方图
    其优点在于:它能简单描述一幅图像中颜色的全局分布,即不同色彩在整幅图像中所占的比例,特别适用于描述那些难以自动分割的图像和不需要考虑物体空间位置的图像。其缺点在于:它无法描述图像中颜色的局部分布及每种色彩所处的空间位置,即无法描述图像中的某一具体的对象或物体。
    最常用的颜色空间:RGB颜色空间、HSV颜色空间。
    颜色直方图特征匹配方法:直方图相交法、距离法、中心距法、参考颜色表法、累加颜色直方图法。
    (2) 颜色集
    颜色直方图法是一种全局颜色特征提取与匹配方法,无法区分局部颜色信息。颜色集是对颜色直方图的一种近似首先将图像从 RGB颜色空间转化成视觉均衡的颜色空间(如 HSV 空间),并将颜色空间量化成若干个柄。然后,用色彩自动分割技术将图像分为若干区域,每个区域用量化颜色空间的某个颜色分量来索引,从而将图像表达为一个二进制的颜色索引集。在图像匹配中,比较不同图像颜色集之间的距离和色彩区域的空间关系
    (3) 颜色矩
    这种方法的数学基础在于:图像中任何的颜色分布均可以用它的矩来表示。此外,由于颜色分布信息主要集中在低阶矩中,因此,仅采用颜色的一阶矩(mean)、二阶矩(variance)和三阶矩(skewness)就足以表达图像的颜色分布。
    (4) 颜色聚合向量
    其核心思想是:将属于直方图每一个柄的像素分成两部分,如果该柄内的某些像素所占据的连续区域的面积大于给定的阈值,则该区域内的像素作为聚合像素,否则作为非聚合像素。

    2.纹理特征

    2.1基本概念
    纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。但由于纹理只是一种物体表面的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。与颜色特征不同,纹理特征不是基于像素点的特征,它需要在包含多个像素点的区域中进行统计计算。在模式匹配中,这种区域性的特征具有较大的优越性,不会由于局部的偏差而无法匹配成功。作为一种统计特征,纹理特征常具有旋转不变性,并且对于噪声有较强的抵抗能力。但是,纹理特征也有其缺点,一个很明显的缺点是当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差。另外,由于有可能受到光照、反射情况的影响,从2-D图像中反映出来的纹理不一定是3-D物体表面真实的纹理。例如,水中的倒影,光滑的金属面互相反射造成的影响等都会导致纹理的变化。由于这些不是物体本身的特性,因而将纹理信息应用于检索时,有时这些虚假的纹理会对检索造成“误导”。 在检索具有粗细、疏密等方面较大差别的纹理图像时,利用纹理特征是一种有效的方法。但当纹理之间的粗细、疏密等易于分辨的信息之间相差不大的时候,通常的纹理特征很难准确地反映出人的视觉感觉不同的纹理之间的差别。

    2.2常用的特征提取与匹配方法
    (1)统计方法
    统计方法的典型代表是一种称为灰度共生矩阵的纹理特征分析方法。灰度共生矩阵的四个关键特征是能量、惯量、熵和相关性。统计方法中另一种典型方法是从图像的自相关函数(即图像的能量谱函数)提取纹理特征,即通过对图像的能量谱函数的计算,提取纹理的粗细度及方向性等特征参数
    (2)几何法
    所谓几何法,是建立在纹理基元(基本的纹理元素)理论基础上的一种纹理特征分析方法。纹理基元理论认为,复杂的纹理可以由若干简单的纹理基元以一定的有规律的形式重复排列构成。在几何法中,比较有影响的算法有两种:Voronio 棋盘格特征法和结构法。
    (3)模型法
    模型法以图像的构造模型为基础,采用模型的参数作为纹理特征。典型的方法是随机场模型法,如马尔可夫(Markov)随机场(MRF)模型法和 Gibbs 随机场模型法
    纹理特征的提取与匹配主要有:灰度共生矩阵、Tamura 纹理特征、自回归纹理模型、小波变换等。
    灰度共生矩阵特征提取与匹配主要依赖于能量、惯量、熵和相关性四个参数。Tamura 纹理特征基于人类对纹理的视觉感知心理学研究,提出6种属性,即:粗糙度、对比度、方向度、线像度、规整度和粗略度。自回归纹理模型(simultaneous auto-regressive, SAR)是马尔可夫随机场(MRF)模型的一种应用实例。

    3.形状特征

    3.1基本概念
    各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果往往不太可靠;③许多形状特征仅描述了目标局部的性质,要全面描述目标常对计算时间和存储量有较高的要求;④许多形状特征所反映的目标形状信息与人的直观感觉不完全一致,或者说,特征空间的相似性与人视觉系统感受到的相似性有差别。另外,从 2-D 图像中表现的 3-D 物体实际上只是物体在空间某一平面的投影,从 2-D 图像中反映出来的形状常不是 3-D 物体真实的形状,由于视点的变化,可能会产生各种失真。
    3.2常用的特征提取与匹配方法
    通常情况下,形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征。图像的轮廓特征主要针对物体的外边界,而图像的区域特征则关系到整个形状区域。
    (1)边界特征法
    该方法通过对边界特征的描述来获取图像的形状参数。其中Hough 变换检测平行直线方法和边界方向直方图方法是经典方法。Hough 变换是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的一种方法,其基本思想是点—线的对偶性;边界方向直方图法首先微分图像求得图像边缘,然后,做出关于边缘大小和方向的直方图,通常的方法是构造图像灰度梯度方向矩阵。
    (2)傅里叶形状描述符法
    傅里叶形状描述符(Fourier shape deors)基本思想是用物体边界的傅里叶变换作为形状描述,利用区域边界的封闭性和周期性,将二维问题转化为一维问题。由边界点导出三种形状表达,分别是曲率函数、质心距离、复坐标函数。
    (3)几何参数法
    形状的表达和匹配采用更为简单的区域特征描述方法,例如采用有关形状定量测度(如矩、面积、周长等)的形状参数法(shape factor)。在 QBIC 系统中,便是利用圆度、偏心率、主轴方向和代数不变矩等几何参数,进行基于形状特征的图像检索。需要说明的是,形状参数的提取,必须以图像处理及图像分割为前提,参数的准确性必然受到分割效果的影响,对分割效果很差的图像,形状参数甚至无法提取。
    (4)形状不变矩法
    利用目标所占区域的矩作为形状描述参数。

    4.空间关系特征

    4.1基本概念
    所谓空间关系,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包含/包容关系等。通常空间位置信息可以分为两类:相对空间位置信息和绝对空间位置信息。前一种关系强调的是目标之间的相对情况,如上下左右关系等,后一种关系强调的是目标之间的距离大小以及方位。显而易见,由绝对空间位置可推出相对空间位置,但表达相对空间位置信息常比较简单。
    空间关系特征的使用可加强对图像内容的描述区分能力,但空间关系特征常对图像或目标的旋转、反转、尺度变化等比较敏感。另外,实际应用中,仅仅利用空间信息往往是不够的,不能有效准确地表达场景信息。为了检索,除使用空间关系特征外,还需要其它特征来配合。
    4.2常用的特征提取与匹配方法
    提取图像空间关系特征可以有两种方法:一种方法是首先对图像进行自动分割,划分出图像中所包含的对象或颜色区域,然后根据这些区域提取图像特征,并建立索引;另一种方法则简单地将图像均匀地划分为若干规则子块,然后对每个图像子块提取特征,并建立索引。

    展开全文
  • 面向对象三大基本特征和五大基本原则 面向对象三大基本特征 封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可 信类或者对象操作,对不可信进行信息...

    面向对象的三大基本特征和五大基本原则

     

    面向对象的三大基本特征

    封装(Encapsulation)

    所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可  信的类或者对象操作,对不可信的进行信息隐藏。

    封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个  封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,

    某些代码或某些数据可   以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以   防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。

     

    继承(Inheritance)

    继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的  情况下对这些功能进行扩展。

    通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”  或“超类”。继承的过程,就是从一般到特殊的过程。

    继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性  和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供   实现的能力。

     

    多态(Polymorphism)

    所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,   但通过一个公共的类,它们

    (那些操作)可以通过相同的方式予以调用。

    最常见的多态就是将子类传入父类参数中,运行时调用父类方法时通过传入的子类决定  具体的内部结构或行为。

     

    面向对象的五大基本原则

    单一职责原则(Single-Responsibility Principle)

    其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。

    单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起  变化的原因,以提高内聚性来减少引起变化的原因。

    职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,  从而大大损伤其内聚性和耦合度。

    通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保  证实体只有一个引起它变化的原因。

    专注,是一个人优良的品质;同样的,单一也是一个类的优良设计。交杂不清的职责将  使得代码看起来特别别扭牵一发而动全身,有失美感和必然导致丑陋的系统错误风险。

     

    开放封闭原则(Open-Closed principle)

    其核心思想是:软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修  改封闭的。

    开放封闭原则主要体现在两个方面:

    1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的  情况。

    2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改。

    实现开放封闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。  让类依赖于固定的抽象,所以修改就是封闭的;而通过面向对象的继承和多态机制,又可实

    现对抽象类的继承,通过覆写其方法来改变固有行为,实现新的拓展方法,所以就是开放的。

    “需求总是变化”没有不变的软件,所以就需要用封闭开放原则来封闭变化满足需求,  同时还能保持软件内部的封装体系稳定,不被需求的变化影响。

     

    Liskov 替换原则(Liskov-Substitution Principle)

    其核心思想是:子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只  有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。

    在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子  类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基   类,但是基类不一定能替换子类。

    Liskov 替换原则,主要着眼于对抽象和多态建立在继承的基础上,因此只有遵循 Liskov 替换原则,才能保证继承复用是可靠地。

    实现的方法是面向接口编程:将公共部分抽象为基类接口或抽象类,通过 Extract Abstract Class,在子类中通过覆写父类的方法实现新的方式支持同样的职责。 Liskov替换原则是关于继承机制的设计原则,违

    反了 Liskov 替换原则就必然导致违反开放封闭原则。

    Liskov 替换原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。

     

    依赖倒置原则(Dependecy-Inversion Principle)

    其核心思想是:依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖  于抽象;抽象不依赖于具体,具体依赖于抽象。

    我们知道,依赖一定会存在于类与类、模块与模块之间。当两个模块之间存在紧密的耦   合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块   调用接口,而底层模块实现

    接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计   目标。

    抽象的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心。 依赖于抽象是一个通用的原则,而某些时候依赖于细节则是在所难免的,必须权衡在抽

    象和具体之间的取舍,方法不是一层不变的。依赖于抽象,   就是对接口编程,不要对实现编程。

     

    接口隔离原则(Interface-Segregation Principle)

    其核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口。

    具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。

    接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等;   而某些时候,实现类型并非

    需要所有的接口定义,在设计上这是“浪费”,而且在实施上这会带来潜在的问题,对胖接口的修改将导致一连串的客户端程序需要修改,有时候这是一种灾难。在这种情况下,将胖接口分解为多个特点的定制化

    方法,使得客户端仅仅依赖于它们的实际调用的方法,从而解除了客户端不会依赖于它们不用的方法。

    分离的手段主要有以下两种:

    1、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,  但是会增加系统的开销。

    2、多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好的。

     

    以上就是 5 个基本的面向对象设计原则,它们就像面向对象程序设计中的金科玉律, 遵守它们可以使我们的代码更加鲜活,易于复用,易于拓展,灵活优雅。不同的设计模式对   应不同的需求,而设计原则则

    代表永恒的灵魂,需要在实践中时时刻刻地遵守。

    就如 ARTHUR J.RIEL 在那边《OOD 启示录》中所说的:“你并不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看做警铃,若违背了其中的一条,那么警铃就会响起。”

     

    展开全文
  • 透切理解面向对象三大基本特性是理解...封装是面向对象的特征之一,是对象概念的主要特性。 简单说,一个类就是一个封装了数据以及操作这些数据代码逻辑实体。在一个对象内部,某些代码或某些数据可以是私有

    透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.


    三大特性是:封装,继承,多态  

     

    所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。


    所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

     

    所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

     

    1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private,protected,public)
    2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。
    3. 多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。


    五大基本原则 


    单一职责原则SRP(Single Responsibility Principle)
    是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。

    开放封闭原则OCP(Open-Close Principle) 
    一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

    替换原则(the Liskov Substitution Principle LSP) 
    子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

    依赖原则(the Dependency Inversion Principle DIP)

    具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

     

    接口分离原则(the Interface Segregation Principle ISP) 
    模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

     

    http://www.cnblogs.com/hnrainll/archive/2012/09/18/2690846.html

    http://www.jobui.com/mianshiti/it/chengxuyuan/1486/

    展开全文
  • 封装是面向对象的特征之一,是对象概念的主要特性。 简单说,一个类就是一个封装了数据以及操作这些数据代码逻辑实体。在一个对象内部,某些代码或某些数据可以是私有,不能被外界访问。通过这种方式,...
  • 信息的概念 信息是管理信息系统最重要的成分,以前可能过多强调其计算机系统的技术性的一面,但管理信息系统最重要的成分应当是信息。管理信息系统在应用中能起到多大的作用,对管理、生产经营能做多大的贡献,...
  • 封装是面向对象的特征之一,是对象概念的主要特性。简单说,一个类就是一个封装了数据以及操作这些数据代码逻辑实体。在一个对象内部,某些代码或某些数据可以是私有,不能被外界访问。通过这种方式,...
  • 定义: 封装是将客观事物封装成抽象类, 并且类可以把自己数据方法只让可信类或者对象操作,对不可信进行信息隐藏。 举例: public class Person{ private String name; private int age; private String...
  • 面向对象三大基本特征 封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者对象操作,对不可信进行信息隐藏。封装是面向对象特征之一,是对象...
  • 主要特征: ...封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者对象操作,对不可信进行信息隐藏。 继承 面向对象编程 (OOP) 语言一个主要功能就是“...
  • 1、软件的概念和特点 ①、(必背)软件概念定义: 软件=程序+数据+文档 程序:按事先设计的功能和性能需求执行的指令序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发、维护和使用有关的图文材料 ②、...
  • Java的基本特征

    2018-06-26 19:41:56
    ·Java的基本特征封装封装最好理解了。封装是面向对象特征之一,是对象概念的主要特性。封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者对象操作,对不可信进行信息...
  • 面向对象三个基本特征(讲解) 面向对象三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象特征之一,是对象概念的主要特性。 封装,也就是把客观事物封装成抽象类,并且类...
  • 面向对象三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象特征之一,是对象概念的主要特性。封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者...
  • 面向对象三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象特征之一,是对象概念的主要特性。封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者...
  • 面向对象的基本特征

    2018-11-05 21:07:40
    面向对象三个基本特征是:封装、继承、多态 封装 封装最好理解了。封装是面向对象特征之一,是对象概念的主要特性。封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者...
  • 封装,也就是把客观事物封装成抽象类,并且类可以把自己数据方法只让可信类或者对象操作,对不可信进行信息隐藏。 继承 面向对象编程 (OOP) 语言一个主要功能就是“继承”。继承是指这样一种能力...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,220
精华内容 488
关键字:

信息的概念和基本特征