管理信息系统代码设计中编码的目的是什么?常见问题

编码的目的是:惟一化、规范化、系统化。代码就是以数字或字符来代表各种客观实体,在系统开过程中设计代码目的是:惟一化、规范化、系统化。

代码就是以数字或字符来代表各种客观实体,在系统开过程中设计代码目的是:

1、惟一化;

2、规范化;

3、系统化。

代码设计六大原则

单一职责原则SingleResponsibilityPrinciple

定义:一个类或者一个接口,最好只负责一项职责。

问题由来:类T负责两个不同的职责P1和P2。由于职责P1需要发生改变而需要修改T类,就有可能导致原来运行正常的职责P2功能发生故障。

解决方法:遵循单一职责原则。分别建立新的类来对应相应的职责;这样就能避免修改类时影响到其他的职责;

当遇到职责扩散的时候,在逻辑足够简单的时候,才可以在代码级别上面违反单一职责原则,只有类中方法数量足够少,才可以在方法级别上违反单一职责原则;

优点:类的复杂性将会降低,可读性将会大大提高,维护性也会提高。

里氏替换原则LiskovSubstitutionPrinciple

在使用基类的地方可以任意使用其子类,能保证子类完美替换基类;这一种精神其实是对继承机制约束规范的体现。在父类和子类的具体实现中,严格控制继承层次中的关系特征,以保证用子类替换基类时,程序行为不发生问题,且能正常进行下去。

对于继承来说,父类定义了一系列的规范和契约,虽然不强制所有的子类必须遵从,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破环。

如果非要重写父类的方法,比较通用的方法是:原来的父类和子类都继承一个更加通俗的基类,原有的继承关系去掉,采用依赖、聚合、组合等关系代替;

原则包含了一下四层含义:

*子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;

*子类可以增加自己特有的方法;

*当子类的方法重载父类的方法时,方法的形参要比父类方法的输入参数更佳宽松;

*当子类的方法实现父类的抽象方法时,方法的返回值要比父类更加严格;

依赖倒置原则DependenceInversionPrinciple

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象,其核心思想是依赖于抽象;

问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来完成;这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原则操作;假如修改类A,会给程序带来不必要的风险。

解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I来间接与类B和类C发生联系,则会降低修改类A的几率;

在实际中,我们一般需要做到以下三点:

*低层模块尽量都要有抽象类或者接口,或者两者都有;

*使用继承时遵循里氏替换原则;

接口隔离原则InterfaceSegregationPrinciple

定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上,否则将会造成接口污染;类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现它们不需要的方法;

原则的含义是:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少;就是说,我们要为每个类建立专用的接口,而不要试图去建立一个庞大的接口供所有依赖它的类去调用;

注意,接口尽量小,但是要有限度,对接口进行细化可以提高程序设计灵活性,但是如果过小,则会导致接口数量尽量小,使设计复杂化。所以一定要适度,为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来;

规则:

*一个接口只服务于一个子模块或业务逻辑,服务定制;

*通过业务逻辑压缩接口中的public方法,让接口看起来更加精悍;

*已经被污染了的接口,尽量修改,如果变更风险太大,则用适配器模式进行转化;

*根据具体的业务,深入了解逻辑,用心感知去控制设计思路;

如何实施接口隔离,主要有两种方法:

1.委托分离,通过增加一个新的接口类型来委托客户的请求,隔离客户和接口的直接依赖,注意这同时也会增加系统的开销;

2.多重继承分离,通过接口的多重继承来实现客户的需求;

迪米特法则

定义:一个对象应该对其他对象保持最少的了解,其核心精神就是:不和陌生人说话,通俗之意就是一个对象对自己需要耦合关联调用的类应该知道的少;这会导致类之间的耦合度降低,每个类都尽量减少对其他类的依赖。

合成复用原则

原则是尽量使用合成/聚合的方式,而不是使用继承;

开闭原则

定义:一个软件实体如类、模版和函数应该对扩展,对修改关闭;

解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是修改已有的代码来实现变化;

THE END
1.管理信息系统的开发与管理林丹宜4.管理信息系统的设计包括哪些方面的设计? 1)总体设计:信息系统流程图设计,功能结构图设计,功能模块图设计; 2)代码设计:代码设计,设计规范制定; 3)系统物理配置方案设计:设备配置,通信网络选择和设计,数据库管理系统选择; 4)数据存储设计:数据库设计,数据库安全保密设计; ...https://www.cnblogs.com/892356821qqcom/p/7809090.html
2.湖北自考信息管理与信息系统专业本科湖北自考专业信息管理与信息系统 (专升本) 专业代码:120503 信息管理与信息系统 [1] (Information Management and Information System,简称IMIS)是集信息技术与管理科学于一体、实践性和创新性很强的交叉学科。本专业旨在培养具备现代管理学理论基础、计算机科学技术知识及应用能力,掌握系统思想和信息系统分析与设计方法以及信息管理等方...http://www.hbzkjy.com/major/120503/
3.MFC课程设计职工信息管理系统(含完整的代码与详细的课程设计报告...东南大学MFC课程设计 职工信息管理系统 包含完整的代码与详细的课程设计报告 东南大学 MFC课程设计 职工信息管理 2012-08-08 上传 大小:4.00MB 所需: 13积分/C币 立即下载 基于VC6.0 的MFC学生成绩管理系统代码(含课程设计报告) 基于VC6.0++的MFC学生成绩管理系统代码(含课程设计报告) 立即...https://www.iteye.com/resource/moomyu-4484861
1.学生管理信息系统的设计与开发(附源代码)资源本文介绍了在Visual Basic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据...https://download.csdn.net/download/tang86/1527793
2.计算机信息管理专业设置6.掌握至少一门程序设计语言,理解程序设计中的代码开发、基本算法分析、程序调试、程序测试等知识,熟悉软件工程的知识; 7.掌握信息系统分析与设计的知识,包括信息系统分析与 设计的理论、方法、工具等; 8.了解基本的企业管理知识,熟悉企业的业务流程,掌握管理信息系统的实施、应用等知识。 https://www.shzv.edu.cn/xxgcfy/info/news-3254.html
3.图书管理系统设计与实现—看这篇就够了腾讯云开发者社区图书管理系统设计与实现 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些...https://cloud.tencent.com/developer/article/1697988
4.?2021年10月自考04757信息系统开发与管理真题及答案自考摘要:?2021年10月自考刚刚考完,考生们最为关注的就是自考真题及答案了,全国2021年10月自考04757信息系统开发与管理真题已经公布,各位考生可以参考。 全国2021年10月高等教育自学考试信息系统开发与管理试题 课程代码:04757 1.请考生按规定用笔将所有试题的答案涂、写在答题纸上。 https://www.educity.cn/zikao/320390.html
5.java学生信息管理系统设计与实现java闲暇之余用JAVA写了个学生信息的管理系统,由于博主还是萌新,代码难免有冗余和错误的地方,如果您发现有什么不足之处或者错误,请留言。博主会尽量回复。需求分析一个学生信息管理系统应该包含这些内容:教师页面在教师页面应该包含:学生页面在教学生页面应该包含:https://www.jb51.net/article/132946.htm
6.管理信息系统设计案例(通用8篇)篇1:管理信息系统设计案例 管理信息系统官方实验:系统分析、系统设计 官方要求:撰写不少于5000字实验报告 系统分析、系统设计案例检索 预备知识 系统分析 简单地说,系统分析就是要弄清“做什么”,即现行系统正在做什么,新系统想要做什么。这是系统开发的第一个阶段,也是最关键的一个阶段。它是一个反复调查、分析和...https://www.360wenmi.com/f/filej0654lxs.html
7.学生信息管理系统设计12篇(全文)学生信息管理系统设计 第1篇 目前,学校的办公方式仍然采用传统的基于纸质的办公模式,既浪费时间且效率低下,也不环保,对于处理大量的学生信息来说变得流动不畅通,反馈时间变长,缺乏时效性,该模式已经无法适应新时期的办公需要。随着网络技术的发展,利用计算机网络技术设计一种基于Web的学生信息管理系统,这是一种优化的科...https://www.99xueshu.com/w/ikeyzgd24e90.html
8.计算机信息管理系统的设计原则方法及原理分析在使用该方法设计计算机信息管理系统时,包括的内容有系统初步设计、系统需求解释、系统测试、调试系统等。其中系统初步设计和系统解释阶段需要用户参与,系统设计者能够获得基本的需求数据,然后借助相关的开发工具能够快速制作出对应的应用系统。 2.2周期设计法 周期法属于一种管理信息系统的设计手段,它主要由结构化系统分析...https://www.yjbys.com/bylw/shuoshi/60549.html
9.医院信息管理系统10篇(合集)医院信息管理系统1 利用虚拟技术可以将一台物理机划分为多个虚拟主机,当不同的用户使用或者运行不同的应用程序时,每个虚拟机都有一套各自专属的虚拟硬件,用来加载各自的操作系统,运行相应的应用程序。各虚拟机的运行和管理与一台物理主机几乎完全相同,均可独立享有自己的用户、系统函数库、访问权限、网络地址、应用程序...https://www.jy135.com/guanli/1971071.html