1、封装变化。找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。
2、针对接口编程,而不是针对实现编程。
举例说明:
假设有一个抽象类Animal,有两个具体的实现(Dog与Cat)继承Animal。
“针对实现编程”的做法:Dog d = new Dog();d.bark();
“针对接口编程”的做法:Animal animal = new Dog();animal.makeSound();
或者:Animal animal = getAnimal();animal.makeSound();
3、多用组合,少用继承。
原因:
a、继承会使类无限膨大,可能会使类变得臃肿。
b、子类可能会继承父类中那些无用甚至有害的方法。
c、组合比继承更灵活,可以实现在执行中动态改变对象的功能。
4、为了交互对象之间的松耦合设计而努力。
5、类应该对修改关闭,对扩展开放。
6、
要依赖抽象,不要依赖具体类。
解释:不要让“高层组件”依赖“低层组件”,而且,不管“高层组件”还是“低层组件”,两者都应该依赖于抽象。
避免违反该原则的几个方针:
1)、变量不可以持有具体类的引用。
如果使用new,就会持有具体类的引用,可以使用工厂来避开这种引用。
2)、不要让类派生自具体类。
如果派生自具体类,就会依赖具体类,可以派生自抽象或接口。
3)、不要覆盖基类中已实现的方法。
如果覆盖基类中已实现的方法,那么基类就不是一个真正适合被继承的类。基类中已实现的方法应该被所有子类所共享。
7、
最少知识原则。解释:当你设计一个系统时,不管是任何对象,你都要注意与它交互的类有哪些,并注意它和这些类是如何交互的,尽量避免过多的类耦合在一起,带来维护成本的上升。
这个原则推荐的一些方针:
就任何对象而言,在该对象的方法内,我们只应该调用一下范围的方法
1)、该对象本身
2)、被当作方法的参数而传递进来的对象
3)、此方法所创建或实例化的任何对象
4)、对象的任何组件。
用代码加以说明:
1public float getTemp()
2{
3 // 没有采用该原则
4 Thermoment thermoment = station.getThermoment();
5 return thermoment.getTemperature();
6}
7
8public float getTemp()
9{
10 // 采用该原则
11 return station.getTemperature();
12}
分享到:
相关推荐
读书笔记:OO原则详述
### OO设计原则 -- OO设计的 DIP依赖倒置原则 #### 概述 在软件工程领域,特别是面向对象设计中,依赖倒置原则(Dependency Inversion Principle, DIP)是六大设计原则之一,由著名软件架构师Robert C. Martin提出...
Flask-restful-api:遵循OO原则,使用SQLAlchemy,jwt身份验证进行简单的API REST
### OO设计原则——里氏替换原则详解 #### 一、引言 面向对象设计原则(Object-Oriented Design Principles)是一套指导软件开发者如何更好地设计类、接口等面向对象元素的原则集合,旨在提高代码的可复用性、可...
### OO设计原则总结 #### 什么是设计原则? 设计原则是一系列指导软件开发的基本准则,遵循这些原则可以帮助开发者构建出更加灵活、易于维护和扩展的软件系统。这些原则旨在解决常见的软件设计问题,如耦合度高、...
千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计出现两难情况时我们必须回归到OO原则,以方便判断取舍。 可以这么说:OO原则是我们的目标,而设计模式是我们的做法!
千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...
本文将深入探讨OO原则、UML表示法以及RUP建模过程。 一、OOAD与UML表示法 面向对象的原则包括抽象(Abstraction)、封装(Encapsulation)、模块化(Modularity)和分层(Hierarchy)。这些原则旨在创建灵活、可...
千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...
GRASP模式,OO原则和设计模式的基础,原创不易,请珍惜下载
千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...
分析过程中,OO原则如单一职责原则、开闭原则等,以及设计模式(如工厂模式、观察者模式等)将发挥作用。通过OO分析,我们可以将系统分解为多个独立的对象,每个对象负责特定的功能,从而提高代码的模块化和可维护性...
千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法...
在本文中,我们将详细探讨OOP设计中的五大原则:单一职责原则(Single Responsibility Principle,简称 SRP)、开放封闭原则(Open-Closed Principle,简称 OCP)、里氏替换原则(Liskov Substitution Principle,...
这些原则包括单一职责原则(SRP)、不要重复代码原则(DRY)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)以及接口隔离原则(ISP)。下面将详细阐述这些原则及其重要性。 1. 单一职责原则(Single ...
### OO设计原则精要解析 #### 封装变化:Encapsulate what varies 在软件设计中,变化是不可避免的。封装变化原则强调将系统中易变的部分与不变的部分分离,通过封装变动点,使得系统其他部分不受其影响,从而保持...
在本书中,你将学到:, ·使用诸如封装(encapsulation)与委派(delegation)的 OO 原则建立灵活的应用程序。, ·使用开闭原则(Open-Closed Principle)与单一责任原则(Single-Responsibility Principle)提升...
1.4章节的结论部分总结了前面章节的内容,强调了OO原则、模式在实际开发中的价值,以及它们如何与UML相结合,为系统设计提供强大的工具。 接下来,2.0章节引入了UML,一种可视化编程语言。UML不仅是一种描述系统...
- 掌握OO原则的原理和应用,改变传统的编程习惯。 - 学习并熟练使用Rational Rose等建模工具。 - 熟练掌握MVC设计模式,这是软件设计中常用的一种架构模式,分离了应用程序的数据模型、用户界面和控制器逻辑。 -...