有三种方式去演化我们的系统。
1.改变实现或者增加新的实现来替换旧的。
2.改变接口。
3.增加接口。
一.先说说我对多态的理解:
多态大部分都是运行时多态,也就是说已经形成了.exe文件或者.jar文件后,仍然有办法去影响代码的运行!
但是,这仅仅是开发类库的人要考虑的问题,因为他无法去改变exe文件。
反面教材:微软系统中的Ex结尾的函数一大堆,就是相当于扩展了原有的系统。相当丑陋。微软为了给函数增加新的参数,很痛苦地设计了很多带有length的结构体。
二.现在说一下大部分的开发状态。
重点:大部分的开发状态是类库和客户端代码都可以改的,在这个前提下考虑多态有什么用处或许更有意义。下面论述一下:
前提条件:所有的源代码都是可以修改的。
1.改变实现
改变实现有几种方式,一种是用修改源代码。一种是增加源代码。
a. 修改源代码的方式: 过多修改源代码,将造成之前的代码丢失。
b. 增加新的代码,最小限度地修改源代码。
方法a:按照面向对象设计原则:系统设计的一大目标是:可以扩展的,但是不可以修改的,这种想法应该直接被否决)
方法b:这种方法有更大的灵活性。前提条件是接口定义要好。能满足可扩展性。
::不要修改函数,试着去增加函数。
::不要修改类,试着去增加类。
2.改变接口。
在改变接口方面,多态不仅无能为力,并且会增加耦合度。使得改变一个父类的接口后,子类的接口都必须重新考虑。
按照照面向对象设计原则:系统设计的一大目标是:可以扩展的,但是不可以修改的,这种想法应该直接被否决)
3.增加接口。
增加新的接口,似乎跟多态没有什么关系。其实还是有关系的。这个需要参照com原理。
分享到:
相关推荐
1. "敏捷开发Scrum.doc":这可能是一份关于敏捷开发中的Scrum框架的详细文档,涵盖了Scrum的角色(产品负责人、Scrum Master和开发团队)、事件(Sprint、Sprint计划、每日Scrum、Sprint评审和Sprint回顾)以及工件...
本文将论述敏捷开发方法在系统分析师中的应用,通过实践证明,在项目的开发中采用合适的敏捷开发方法可以有效地缩短开发时间,提高产品质量。本文将从以下几个方面论述敏捷开发方法的应用: 一、极限编程的应用 ...
### 敏捷开发的核心理念与实践 #### 一、敏捷开发概述 敏捷开发是一种强调灵活性、快速响应变化的软件开发方法论。与传统的瀑布模型相比,敏捷开发更加注重团队之间的紧密协作、持续改进以及高质量的产品交付。...
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于...
主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发方法框架和敏捷实践,企业敏捷转型参考框架,帮助企业回答为什么要进行敏捷转型,敏捷转型包含哪些内容和如何开展敏捷转型等问题。 第1章 敏捷开发知识体系总体...
尤其是,本书为敏捷开发中一些较为困难的方面(合作的需要和团队成员之间的信任)提供了解决办法。, 不管你目前已经是敏捷团队的一部分,还是只对敏捷开发感兴趣,本书都为你提供了开始实践敏捷开发所需的实用技巧。...
【敏捷开发中编写高质量Java代码】的实践策略 在敏捷开发模式下,代码质量的提升是项目成功的关键因素。为了确保Java项目的代码质量,我们可以遵循五个关键步骤: 1. **统一编码规范与代码样式** - 编码规范是...
Scrum是敏捷开发中最流行的实践方式之一,它是一种迭代式增量的软件开发过程,采用时间驱动的Sprint周期来进行管理。 敏捷思想强调涌现式需求,即需求在开发过程中逐渐清晰和完善,反对一成不变的预测性计划。敏捷...
1. **个体和互动**:在敏捷开发中,团队成员之间的沟通和协作被高度重视,这有助于快速解决问题和适应变化。 2. **可工作的软件**:每个迭代周期结束时,都会交付可用的软件,以展示进度并获取反馈。 3. **客户合作*...
在敏捷开发中,设计过程并不是被忽略,而是进行了简化和调整。尽管敏捷开发主张快速迭代,但**详细设计**仍然是保证软件质量的关键步骤。不过,敏捷设计并不像传统开发那样产生详尽的文档,而是更加注重可执行的、轻...
Martin(也被称为“鲍勃叔叔”),作为软件开发和工程领域的大师,阐述了敏捷开发中的核心原则、设计模式和实践,尤其是在极限编程(Extreme Programming, 简称XP)方面的应用。XP是一种敏捷软件开发方法,它在预算...
敏捷开发中QA的职责之敏捷中的QA!QA,通常指的是质量保证(QualityAssurance)工程师,但我更喜欢定义敏捷中的QA为质量分析师(QualityAnalyst),主要基于以下几个方面的原因:质量保证更偏向于工业说法,称参与软件...
1. **个体和交互胜过过程和工具**:在敏捷开发中,重视团队成员间的沟通和协作,认为这比遵循严格的流程和使用高级工具更重要。 2. **可工作的软件胜过详尽的文档**:尽管文档是必要的,但敏捷开发强调以实际可运行...
**C++ 敏捷开发资料概述** ...总结来说,C++ 敏捷开发资料包提供了关于如何在C++项目中应用敏捷开发方法的宝贵资源。通过掌握这些知识,开发者可以更好地适应需求变化,优化团队协作,以及提高软件的可靠性和可维护性。
Scrum是敏捷开发中的一种框架,其核心理念是迭代开发与自我组织团队。Scrum框架包括三个主要角色:产品负责人、Scrum Master和开发团队,以及几个关键活动:Sprint计划会议、每日立会、Sprint评审会和Sprint回顾会。...
在敏捷开发与测试的过程中,通常会穿插问答环节(Q&A),以解决开发和测试过程中遇到的问题,同时也是团队成员之间沟通和知识共享的机会。通过问答,团队可以更好地理解项目需求、确认设计决策、优化测试策略、调整...
尽管如此,近年来已经有一些针对大规模敏捷开发的研究和实践,以解决大型项目中的协同和管理问题。 值得注意的是,敏捷开发并非没有挑战。例如,在项目初期,如果需求不明确或客户对自己的需求理解不足,可能会导致...
### Flash敏捷开发:快速学习敏捷软件开发 #### 敏捷软件开发概述 敏捷软件开发是一种迭代的方法论,用于管理新软件开发项目的过程。它强调快速响应变化、客户满意度以及持续改进。与传统的瀑布模型不同,敏捷方法...