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

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

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.仓库管理系统界面设计代码仓库管理系统制作仓库管理系统界面设计代码 仓库管理系统制作 SSM中小企业仓库管理信息系统的设计与实现 摘要 现如今,许多企业存在的问题:信息化不足,计算机使用率不高,大量的日常工作皆是手工处理,因此工作效率低,企业内部沟通不良等等问题很难克服。要提升企业竞争力,企业内部信息化是不可缺少的一个步骤。所以要实施先进的自动化系统,https://blog.51cto.com/u_14273/10773775
2.管理信息系统课程设计程序代码完整版.pdf管理信息系统课程设计程序代码完整版.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 1、 Program.cs using System; using System.Collections.Generic; using System.Windows.Forms; using xy using System.Data.SqlClient; static class Program { /// summary /// 应用程序的主入口点。 /https://max.book118.com/html/2022/0202/6241140031004114.shtm
3.Java课程设计学籍信息管理系统「建议收藏」学生的学籍信息是记录学生的重要信息档案,如何以电子文档形式记录下学生的学籍信息是每个学校必须做的事情,该学生学籍信息管理系统就是为了方便学校记录下每一个学生的基本信息,生成电子数据库,并且能够做到查询、更改、删除、浏览等功能操作,让学籍信息的管理更加方便快捷。 二、设计方案 1、系统框架 学籍信息管理系统https://cloud.tencent.com/developer/article/2054519
4.《管理信息系统》课程思政教学案例系统地掌握数字经济时代信息管理信息系统和计算机技术应用等的理认知识,培养学生的客观辩证、探索创新等基本科学素养。 了解浙江、国家和全球数字经济发展的新形势、新战略和新任务, 培养学生具有新时代社会主义核心价值观、较强的浙江精神。 课程思政案例教学设计和实施 https://management.hdu.edu.cn/kcsz/2022/0705/c7409a155636/page.htm
5.[开题]基于JAVA计算机毕业设计车辆违章信息系统(附源码)本研究旨在设计并实现一套功能完善的车辆违章信息系统,以实现对车辆违章行为的全面监控与管理。通过该系统,用户能够方便地查询个人车辆违章信息,了解违章详情及处罚措施;执法员则能够高效地完成违章信息的录入、审核与处理工作;同时,系统还具备车辆信息管理、违章类型定义、违章处罚标准设定、违章申诉处理、公告信息发布以及https://zhuanlan.zhihu.com/p/12021910792
6.管理信息系统设计案例(通用8篇)篇1:管理信息系统设计案例 管理信息系统官方实验:系统分析、系统设计 官方要求:撰写不少于5000字实验报告 系统分析、系统设计案例检索 预备知识 系统分析 简单地说,系统分析就是要弄清“做什么”,即现行系统正在做什么,新系统想要做什么。这是系统开发的第一个阶段,也是最关键的一个阶段。它是一个反复调查、分析和https://www.360wenmi.com/f/filej0654lxs.html
7.计算机毕业设计(4)系统内的功能模块之间的关联设计要符合规范,每一个功能模块之间的关联性、数据之间的关联性要做好分析设计与架构,方便后续的开发设计以及系统的健壮性。 3.2系统业务流程分析 酒店管理系统主要分为两个部分,前台的用户界面,方便用户进行酒店的客房预订管理、信息的查看修改等功能:后台的管理员登录查看酒店客房的预订https://download.csdn.net/blog/column/12263520/134770322
8.基于RFID古树名木管理三维信息系统的设计与实现AET摘要:为了对古树名木信息管理实现智能化,分析了系统的业务功能需求,采用嵌入式系统结合RFID技术设计并实现了一种集野外信息采集、二三维信息管理与表达于一体的古树名木管理三维信息系统。系统在原有基于虚拟植物的古树名木三维管理信息系统的基础上,扩展了终端信息采集、信息绑定、信息管理模块,基于信息更新联动机制,能够http://www.chinaaet.com/article/218909
9.学生信息管理系统设计12篇(全文)学生信息管理系统设计 第1篇 目前,学校的办公方式仍然采用传统的基于纸质的办公模式,既浪费时间且效率低下,也不环保,对于处理大量的学生信息来说变得流动不畅通,反馈时间变长,缺乏时效性,该模式已经无法适应新时期的办公需要。随着网络技术的发展,利用计算机网络技术设计一种基于Web的学生信息管理系统,这是一种优化的科https://www.99xueshu.com/w/ikeyzgd24e90.html
10.计算机信息管理系统的设计原则方法及原理分析在使用该方法设计计算机信息管理系统时,包括的内容有系统初步设计、系统需求解释、系统测试、调试系统等。其中系统初步设计和系统解释阶段需要用户参与,系统设计者能够获得基本的需求数据,然后借助相关的开发工具能够快速制作出对应的应用系统。 2.2周期设计法 周期法属于一种管理信息系统的设计手段,它主要由结构化系统分析https://www.yjbys.com/bylw/shuoshi/60549.html
11.C语言学生信息管理系统详细设计 正常设计链表时一个链表代表一种类型的数据的链表,当新增一种数据时候则又要起新链表,代码冗余度高。比如存在教师信息和学生信息两个链表,但对于链表的处理都是一致的,因此可封装统一链表函数。结构如下: typedefstructcommlist{void*data;structcommlist*next;}COMMLIST_ST; https://www.jianshu.com/p/daa347b860ca
12.江西省水库运行管理信息系统Ⅰ期建设设计研究期刊摘要:为满足水库主管部门及时准确掌握大坝安全信息,监督水库大坝安全管理工作的要求,实行运行管理信息化已成为水利工程管理的趋势.本文通过介绍江西省水库运行管理信息系统Ⅰ期建设目标和建设原则,提出了信息系统功能要求,并利用现有的"互联网+"信息技术,设计了一套由PC端、门户网站、手机APP构成的水库运行管理信息系统,该https://d.wanfangdata.com.cn/periodical/sljsygl202010012
13.地理信息系统的研究内容开源地理空间基金会中文分会开放地理地理信息系统技术系统设计? 包括地理信息系统硬件设计与配置;地理空间数据结构及表示;输入与输出系统;空间数据库管理系统;用户界面与用户工具设计;地理信息系统工具软件研制;微机地理信息系统的开发;网络地理信息系统的研制等。 地理信息系统应用方法研究? https://www.osgeo.cn/tutorial/k1014
14.C语言数组实现学生信息管理系统设计C语言这篇文章主要为大家详细介绍了C语言数组实现学生信息管理系统设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】概述 单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要https://www.jb51.net/article/133040.htm