软件设计:结构化与面向对象的深度解析
1. 结构化设计概述
结构化设计涵盖了一系列经典的设计方法,这些设计理念适用于众多类型的问题。最初的结构化设计思想——逐步细化,要求从顶层开始分解问题,重点关注解决方案的控制流程。它与一些架构紧密相关,特别是主程序 - 子程序和管道 - 过滤器架构。模块化分解是现代面向对象方法的直接先驱,它引入了封装和信息隐藏的概念,这些概念是设计工具箱中的基础。
2. 面向对象编程基础
面向对象编程(OOP)中,对象具有身份(名称)、状态(描述对象内部当前存储数据的一组属性)和一组定义好的行为。在面向对象程序中,一组协作的对象相互传递消息,消息请求目标对象调用方法,这些方法可以对其数据执行操作(从而改变对象的状态),或者报告对象的当前状态。对象使用封装和信息隐藏来隔离数据和操作,通常会消除共享数据区域。对象是定义属性类型和操作的类的成员。
类是对象的模板,也可以看作是生成对象的工厂。类可以从其他类继承属性和行为,并可以形成类层次结构。子类继承其父类的属性和操作,并可以添加自己的新方法或属性。例如,银行账户对象可能包括客户的姓名、地址、余额和唯一的银行账户 ID 号,还允许存款和取款,并可以查询当前余额。支票账户是银行账户的更具体版本,它具有银行账户的所有属性和操作,但增加了特定于支票账户的数据和行为,如支票号码和每张支票的费用。
继承具有一些优点,它是一种可用于对实体进行分类的抽象机制,也是设计和编程层面的重用机制,继承图是关于领域和系统的组织知识的来源。然而,继承也存在问题,它使对象类不是自包含的,不参考其父类就无法理解子类。继承会引入复杂性,这在关键系统中是不可取的。继承通常还允许运算符(Java 中的方法)
超级会员免费看
订阅专栏 解锁全文
7608

被折叠的 条评论
为什么被折叠?



