这是我参与更文挑战的第27天,活动详情查看: 更文挑战
人机界面设计
界面设计遵循的原则是置于用户控制之下,减少用户的记忆负担,保持界面的一致性。
设计时应保证整个应用的页面基本一致,已建立的用户习惯除非必要,不要轻易改变。
交互应减少学习成本,和原有的系统最好风格保持一致(比如都用ruoyi开发。。。)
结构化设计
结构化需要的是概要设计和详细设计,遵循的要点是1.抽象化,2.自顶向下,逐步求精(数据流图的多层就是在这里使用的)3.信息隐蔽4.模块独立(高内聚,低耦合)
结构化设计应保持模块的大小适中,并减小调用的深度。
面向对象设计
设计原则
单一职责原则:设计目的单一的类。
优点是不会担心因为修改一个方法导致其他地方报错,也提高了可读性。 这条看起来最容易遵守,却也是最不容易遵守的,毕竟一开始都是一个类干一个事,随着需求的变更,类之间的界限也就越来越模糊,该分成两个不同的类的时候可能也来不及做拆分只能放到一起了。
开放-封闭原则:对扩展开放,对修改封闭
有新的需求或变化时,可以对现有代码做扩展,而类一旦实际完成就应该可以独立编写扩展,不要再对这个类进行修改了。可以使用策略模式和模板方法模式来进行重构,使得我们的代码能够符合开放封闭原则。
里式替换原则:
子类可以替换父类,任何基类可以出现的地方,子类一定可以替代。里式替换的目的就是增加程序的健壮性,需求变更时也可以保持良好的兼容性和稳定性,即使增加子类,原有的子类可以继续运行。
依赖倒置原则(DI):要依赖于抽象,而不是具体实现;
针对接口编程,不要针对实现编程,这样可以降低客户与实现模块的耦合
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
组合/聚合和继承是实现复用的两个基本途径。合成复用原则是指尽量使用合成/聚合,而不是使用继承。
迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
用来降低类之间的耦合,设计模式中的门面模式(Facade)和中介模式(Mediator)都是迪米特法则的应用的例子。有可能造成的一个后果就是,系统中存在的大量的中介类,这些类只所以存在完全是为了传递类之间的相互调用关系---这在一定程度上增加系统的复杂度