1.单一职责(SRP)
一个类或者一个方法,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。
2. 开闭原则(OCP)
开闭原则指的是一个软件实体应对对扩展开发,对修改关闭。
3. 依赖倒置原则(DIP,IOC)
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。
抽象不应当依赖于细节;细节应当依赖于抽象;
要针对接口编程,不针对实现编程。
4. 组合/聚合复用原则
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。
5. 里氏替换原则(LSP)
所有引用基类的地方必须能透明地使用其子类的对象。
即:
所以使用基类代码的地方,用派生类代码替换后,能够正确的执行动作处理。
换句话说,如果派生类替换了基类后,不能够正确执行动作,那么他们的继承关系就应该废除。
6.迪米特法则(Law of Demeter)
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另外一个类的某一个方法,可以通过第三者转发这个调用。
将迪米特法则运用到系统的设计中时,应注意的几点:
① 在类的划分上,应该创建有弱耦合的类;
② 在类的结构设计上,每一个类都应当尽量降低成员的访问权限;
③ 在类的设计上,只要有可能,一个类应当设计成不变类;
④ 在对其他类的引用上,一个对象对其它对象的引用应当降到最低;
⑤ 尽量降低类的访问权限;
⑥ 谨慎使用序列化功能;
⑦ 不要暴露类成员,而应该提供相应的访问器(属性)。
分享到:
相关推荐
原则,是在编程技巧、编程语言、设计模式、工具之下的最底层的东西,它是人们在几十年的软件开发过程中不断经历、提炼出来的重要经验,体系了软件设计、开发过程中的设计哲学。 随着技术和时代的发展,这些原则可能...
书中的核心内容包括以下几个方面: 1. **敏捷原则**:书中详细介绍了敏捷宣言及其背后的12条原则。敏捷宣言主张个体和互动胜过流程和工具,可工作的软件胜过详尽的文档,客户协作胜过合同谈判,以及响应变化胜过...
书中详细介绍了以下几个关键知识点: 1. **敏捷原则**:包括“尽早并持续交付有价值的软件”、“欢迎改变需求,即使在开发的后期”等12个核心原则,这些原则指导着敏捷团队的行为和决策。 2. **设计模式**:书中...
敏捷软件开发原则、模式和实践涉及的几个关键方面如下: 1. 敏捷宣言的核心价值: 敏捷宣言是由一群软件开发人员起草的一份文档,其核心价值体现了敏捷开发的核心理念,包括: - 个体和互动高于流程和工具 - 可...
原则,是在编程技巧、编程语言、设计模式、工具之下的最底层的东西,它是人们在几十年的软件开发过程中不断经历、提炼出来的重要经验,体系了软件设计、开发过程中的设计哲学。随着技术和时代的发展,这些原则可能...
软件开发实施方案系统开发严格按照软件工程的方法进行组织,系统的开发过程按照需求分析、系统分析与设计要求、系统编码、系统测试几个过程有序推进。开发流程图中,采用原型及迭代方式开发,根据用户需求持续改进,...
在国家软件开发规范中,我们可能会看到以下几个核心内容: 1. **需求管理**:规范需求获取、分析、定义、验证和变更控制的过程,确保软件开发始终符合用户的需求。 2. **设计原则**:强调模块化、可读性、可维护性...
在探讨《敏捷软件开发:原则、模式与实践全.pdf》这一文献时,首先需要明确几个核心概念:敏捷软件开发、原则、模式与实践。 敏捷软件开发是一种强调快速迭代和持续交付的软件开发方法论。与传统的瀑布式开发相比,...
除了介绍敏捷开发的原则外,《敏捷软件开发:原则、模式与实践(C#版·修订版)》还深入探讨了面向对象设计的基本模式,以及这些模式在C#中的应用。 1. **工厂模式**:提供了一个创建对象的接口,但允许子类决定实例...
在“精品软件工具--以一个完整的项目范例说明软件开发的思想、原则、实践和工具集.zip”这个压缩包中,我们可以预见到它包含了丰富的软件开发资源,旨在通过一个实际的项目案例来阐述软件开发的核心概念、指导原则...
根据标准,软件开发费用主要由以下几个部分构成: 1. **直接人力成本**:指直接参与项目开发的人员成本,包括但不限于项目经理、开发人员、测试人员等的人力成本。 2. **直接非人力成本**:包括购买或租赁软件、...
在"软件开发"中,图标设计有以下几个关键点: 1. **一致性**:所有图标应当遵循一致的设计风格,包括颜色、线条粗细、阴影效果等,以保持整体视觉的一致性。 2. **可识别性**:即使图标很小,也应确保用户能够迅速...
敏捷开发的流行也反映在了多种行业标准和奖项中,例如ISO9000标准的更新就增加了敏捷原则,美国军方的软件开发标准推荐迭代开发模式,以及美国波多里奇国家质量奖将敏捷作为核心原则之一。 在敏捷开发中,团队通常...
在软件开发的学习和实践中,这本书通常会涵盖以下几个方面的知识点: 1. **软件开发基础**:包括软件开发的基本概念、软件生命周期、软件开发生命周期模型等。这些基础概念是软件开发人员必备的知识,能够帮助读者...
实施软件开发规范和开发计划书的过程中,有几个关键点需要注意: 1. 沟通和共识:所有团队成员都应理解并接受规范和计划,这需要充分的讨论和沟通。 2. 灵活性:虽然规范和计划提供了结构,但也要适应项目的变化,...
《软件开发文档编写标准规范》是一份至关重要的参考资料,它为软件开发团队提供了一套详细的指导原则和格式,确保在项目开发过程中产生的各种文档能够清晰、一致且有效地传达信息。文档是软件工程的重要组成部分,它...