软件设计与体系结构第一次作业:面向对象设计原则

1.单一职责原则:设计目的单一的类

  答:面向对象五个基本准则之一,还有开闭原则,接口隔离原则,李氏替换原则和依赖倒置原则

    单一职责原则又称单一功能原则,它规定一个类应该只有一个发生变化的原因,添加功能时,要考虑职责分离。

  理解:一个功能应被封装在一个模块或类中,每一个模块都是相对独立的;便于日后修改代码,修改一个模块不会对其他功能模块造成影响。

2.开发-封闭原则:对扩展开放,对修改封闭

  答:开闭原则规定“软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的”一个实体是允许在不改变它的源代码的前提下变更它的行为。

  好处:可维护,可扩展,可复用,灵活性高

  理解:尽量在原代码的基础上增加功能,对于原本代码的改动尽量小。开发人员应该仅对程序中出现频繁变化的那些部分做出抽象。

3.里氏替换原则:子类可以替换父类

  答:对子类型的特别定义。里氏替换原则的内容: 派生类(子类)对象可以在程式中代替其基类(超类)对象。
  理解:子类型必须能替换掉他们的基类。

4.依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程

  答:子类型必须能够替换掉它们的父类型。在软件里面,把父类都替换成他的子类,程序行为没有变化,子类型必须能替换掉他们的父类型

  理解:不管是高层模块还是低层模块,他们都依赖与抽象,接口要稳定,那么任何改动都不用担心其他会受到影响,任何一个模块都可以。

5.接口隔离原则:使用多个专门的接口比使用单一的总接口要好。

  答:客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。一个接口代表一个角色,应当将不同的角色都交给不同接口;没有关系的接口不能合并在一起。

  理解:调用者只能访问它自己的方法,不能访问到不应该访问的方法。比如管理员可以调用后台管理,用户只能调用登录和查询。

6.组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。

  答:要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。理解:组合能更好的实现封装,比继承具有更大的灵活性和更稳定的结构。

  理解:在一个新的对象里面使用一些已有的对象成为新对象的一部分,新对象通过旧对象实现新功能,继承的耦合比组合高。

 

7.迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。

  答:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。

  理解:让每个模块每个功能尽量做到独立,减少代码臃肿。

8.版本号的规则

第一位(1):主版本号。当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。
第二位(2):子版本号。当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。此版本号由项目决定是否修改。
第三位(3):修订版本号。一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的bug即可发布一个修订版。此版本号由项目经理决定是否修改。
日期版本号(20201228):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。
希腊字母版本号(rc):此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。此版本号由项目决定是否修改。

Base版: 此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是作为整体网站的一个基础架构。
Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。
Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对象是软件的UI。
RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。
Release版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。

 

posted @ 2023-03-05 18:19  袁博博  阅读(14)  评论(0)    收藏  举报