• 软件考试临时抱的佛脚-2


    5.面向对象方法

    类与类之间的关系:

    依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。

    泛化关系(Generalization):A是B和C的父类,B,C具有公共类(父类)A,说明A是B,C的一般化(概括,也称泛化)

    关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单,再如篮球队员与球队之间的关联(单向关联;双向关联;自关联;重数性关联)

    聚合关系(Aggregation):表示的是整体和部分的关系,整体与部分 可以分开.

    组合关系(Composition):也是整体与部分的关系,但是整体与部分不可以分开.

    消息:

    消息是对象间通信的手段,一个对象通过向另一对象发送消息来请求其服务
    消息由3部分组成:1.接受消息的对象名称;2.消息名;3.零个或多个参数
    举例A.show(x,y)   A为接受消息的对象名称 show是消息名 x,y是消息的参数
    那在这个调用中A.show(x,y)是谁在与对象A通信呢?

    谁调用了A.show(x,y),就是谁在与对象A通信。

    用例与用例间的关系:

    1、 泛化关系Generalization 
    代表一般与特殊的关系。(类似于继承) 
    在用例泛化中,子用例表示父用例的特殊形式,子用例继承了父用例的行为和属性,也可以增加新的行为和属性或覆盖父用例中的行为。

    2、 包含关系Include 
    一个用例(基用例,基本用例)可以包含其他用例(包含用例)具有的行为,并把它所包含的用例行为作为自身用例的一部分,这被称为包含关系。

    3、 扩展关系Extend 
    一个用例也可以定义为基本用例的增量扩展,这称作扩展关系,即扩展关系是把新的行为插入到已有的用例中的方法。在UML中,包含关系表示为虚线箭头加版型《extend》,箭头从扩展用例指向基本用例。

    OMT:

    面向对象建模方法有很多种,也都在进一步的发展和完善中。OMT法是目前最为成熟和实用的方法之一。它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。

    BOOCH

    Booch方法是早期面向对象的软件开发方法的一种,Booch认为软件开发是一个螺旋上升的过程,每个周期包括4个步骤,分别是标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型(类图、对象图)和物理模型(模块图、进程图),描述了系统的构成和结构。动态模型包括状态图和时序图。该方法对每一步都做了详细的描述,描述手段丰富而灵活。
    Booth不仅建立了开发方法,还提出设计人员的技术要求,以及不同开发阶段的人力资源配置。Booch方法的基本模型包括类图与对象图,主张在分析和设计中既使用类图,也使用对象图。
    Booch方法是在UML出现之前比较普及的一种面向对象的软件设计方法,它包括一个很像UML的图标语言。如果不仔细看,不好看出一个图是Booch还是UML。与Booch方法同时存在的,还有至少10种类似于UML的图标语言、设计方法论等等。UML将这些图标语言统一了起来,而没有提及方法论,从而使UML成为一种为所有人都能接受的图标语言,同时适应于各种的设计方法论。
    OOSE
    OOSE(Object-oriented software engineering)即面向对象的软件工程,这是一种在OMT Object Modeling Technology的基础上用于对功能模型进行补充指导系统开发活动的系统方法。OOSE技术已经在很大程度上让位给基于RUPRational Unified Process技术的UMLUnified Modeling Language。
    单一职责原则
    单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。
    开闭原则
    对于扩展是开放的,对于修改是关闭的,这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。模块的二进制可执行版本,无论是可链接的库、DLL或者.EXE文件,都无需改动。
    里氏替换原则
    里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
    依赖倒置原则
    A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
    B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
    接口隔离原则
    客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
    组合重用原则
    组合复用原则也叫合成/聚合复用原则(CARP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。 
    这个原则的简短表述就是:要尽量使用组合,尽量不要使用继承。
    迪米特原则

    迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。

    一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的public方法,我就调用这么多,其他的一概不关心。

    UML;23种设计模式

    态成员

    静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值。

    关于静态成员函数,可以总结为以下几点:

    出现在类体外的函数定义不能指定关键字static;

    静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;

    非静态成员函数可以任意地访问静态成员函数和静态数据成员;

    静态成员函数不能访问非静态成员函数和非静态数据成员;

    6.计算机硬件基础

    原码补码反码移码:

    对除符号位外的其余各位逐位取反就产生了反码,负数的补码就是对反码加一,而正数不变,移码 = 补码符号位取反。

    PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。

    1987年,STD总线被被批准为国际标准IEEE-961。STD-80/MPX作为STD-80追加标准,支持多主(MultiMaster)系统。STD总线工控机是工业型计算机,STD总线的16位总线性能满足嵌入式和实时性应用要求,特别是它的小板尺寸、垂直放置无源背板的直插式结构、丰富的工业I/O OEM模板、低成本、低功耗、扩展的温度范围、可*性和良好的可维护性设计,使其在空间和功耗受到严格限制的、可靠性要求较高的工业自动化领域得到了广泛应用。

    局部性原理:

    局部性原理: CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

    三种不同类型的局部性:
    时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。
    程序循环、堆栈等是产生时间局部性的原因。
    空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
    顺序局部性(Order Locality):在典型程序中,除转移类指令外,大部分指令是顺序进行的。顺序执行和非顺序执行的比例大致是5:1。此外,对大型数组访问也是顺序的。
    指令的顺序执行、数组的连续存放等是产生顺序局部性的原因。
    DMA方式:
    DMA方式,Direct Memory Access,也称为成组数据传送方式,有时也称为直接内存操作。DMA方式在数据传送过程中,没有保存现场、恢复现场之类的工作。
    由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。内存地址修改、传送字 个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。
    RISC:精简指令集,是计算机中央处理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computing的缩写)。 这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。
     
  • 相关阅读:
    图书管理系统(view)前后端调联 (copy)
    图书管理系统(modelviewset)前后端调联
    工单系统表的设计
    初始化工单项目及配置
    重要概念 什么是web容器 Linux下安装部署njinx+uwsgi+django+vue
    ubuntu下安装docker django使用whoosh搜索引擎 使用es(elasticsearch)代替whoosh
    RBAC权限管理基本概念与实现
    Django支付宝(沙箱)后端接口
    使用七牛云上传 并将本地图片视屏上传
    展示课程
  • 原文地址:https://www.cnblogs.com/dramstadt/p/7744672.html
Copyright © 2020-2023  润新知