软件设计与体系结构第一次作业:面向对象设计原则
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)。

浙公网安备 33010602011771号