软件设计三大原则通常被认为是 复用、变化和认知复杂度。这些原则的核心在于通过合理的设计方法,使得软件系统能够更好地满足用户需求、适应变化,并且易于理解和维护。
复用:
软件设计应尽可能复用已有的模块和成果,以提高开发效率,降低开发成本,并确保软件质量。
变化:
软件设计应考虑到未来可能的变化,采用灵活的结构和模块设计,以便于在需求变更时能够快速适应和修改。
认知复杂度:
软件设计应尽可能降低用户的认知负担,使软件界面和操作逻辑简洁明了,易于理解和使用。
此外,软件设计还有其他一些重要原则,包括:
可靠性:
软件系统应具备在测试运行过程中避免故障的能力,并且一旦发生故障,能够有解脱和排除故障的能力。
健壮性:
软件应对规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。
可修改性:
软件设计应具有良好的结构和完备的文档,系统性能易于调整。
容易理解:
软件的可理解性是其可靠性和可修改性的前提,要求软件本身具有简单明了的结构。
程序简便:
软件设计应追求简洁明了,避免不必要的复杂性。
可测试性:
软件设计应提供适当的数据集合,以便于测试所建立的系统,并保证系统得到全面的检验。
效率性:
软件的效率性一般用程序的执行时间和所占用的内存容量来度量。
依赖倒置原则:
高层模块不应该依赖底层模块,而应该依赖其抽象。
开放封闭原则:
软件实体(类,模块,函数等)应该是可以扩展的,但是不可修改的。
接口隔离原则:
使用多个专门的接口,而不是使用单一的总接口。
单一职责原则:
一个类,最好只做一件事,只有一个引起它变化的原因。
迪米特法则:
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。
这些原则在实际应用中需要根据具体情况进行权衡和选择,以达到最佳的设计效果。