一、面相对象开发方法的概述

面相对象开发方法的概述

软件开发经历的生命周期:

        软件分析—>设计—>编码->测试->维护

优良软件的特征:

         可重用性:减少重复代码,避免重复编程。

         可扩展性:在现有系统的基础上新加功能时,不影响现有系统的建构。

         可维护性:当用户需求变更时,只需要修改局部子系统的少量代码

子系统的特点:

  • 结构稳定性:比较健壮,能够适应用户的变化需求
  • 可扩展性:现有子系统的基础上创建新的子系统,该子系统继承了原有子系统的特性,并且有一些新的特性
  • 内聚性:每个子系统只完成特定的功能,每个子系统的粒度在保持功能完整        性的前提下尽可能的小
  • 可组合性:若干精粒度的子系统组合,成为大系统
  • 松耦合:子系统之间尽量保持独立

主流的开发方法:

                结构化开发

                面相对象开发

1.1结构化软件开发:

结构化开发主要是以软件功能来划分软件结构的。把整个软件系统划分成多个模块每个模块实现特定的子功能。为提高软件的内聚性,在模块中还会把功能分解到更小的子模块中。在完成模块设计后,把所有的子模块拼装起来,就构成了整个软件系统。

    是自顶向下的设计,在设计阶段就不得不考虑如何实现系统的功能,当客户需求变化时,就要自顶向下修改模块结构,不能灵活适应客户多变的需求

    自顶向下的设计,制约类程序的可扩展性,可维护性,松耦合性高;

1.2面向对象的软件开发

    面向对象的开发方法把软件系统看成是各个对象的集合,对象就是最小的子系统,一组相关的对象,能够组合能更加复杂的子系统。

    优点:

          把软件看成是对象的组合。

          软件需求的变动是功能的变动,功能的执行者对象一般变动不大,保持了系统的稳定性。

    对象封装了属性(数据),行为(方法)提高了系统的独立性,支持封装、继承、多态抽象的特征,提高了软件的扩维护性,可扩展性、可重用性。

1.2.1对象模型

    面相对象的分析设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型,包括自底向上的抽象,和自上向下的分解

     把问题领域中的事物抽象为具有特定属性和行为的对象

     把具有相同属性和行为的对象抽象为类

     当多个类之间具有共性,将共性抽象为父类

1.3面向对象开发中的核心思想和概念

     面向对象开发当中,开发者先建立模拟问题领域的对象模型。然后通过代码来实现对模型。

     消息、服务:

               每个对象有特定的功能,相对其他对象而言,是服务的提供者

               对象的服务是通过方法来实现,发送消息,实际上就是,访问方法

     接口:对象通过接口对外提供服务

               接口是提高系统之间松耦合的有利手段

               接口提高系统的可扩展性

          java中接口的定义

               interface

               public修饰的方法

     封装、透明 隐藏对象的属性和方法,仅仅对外提供访问的接口。透明就是看不见

1.4类之间的关系

     关联:类A与类B的实例之间存在特定的对应关系(一对一,一对多,多对多)

     依赖:类A访问类B提供的服务(类A访问类B的属性,类A中实例化类B)

     聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成

     泛化:类A继承类B

     实现:类A实现B接口

猜你喜欢

转载自www.cnblogs.com/jdy1022/p/10413576.html