面相对象7大原则

1、单一职责原则

每个类应该专注于做一件事情。

2、里氏替换原则

超类存在的地方,子类是可以替换的。

3、依赖倒置原则

实现尽量依赖抽象,不依赖具体实现

4、接口隔离原则

应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口

5、迪米特法则

又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用

6、开闭原则

面相扩展开放,面相修改关闭

7、组合/聚合复用原则

尽量使用合成/聚合达到复用,尽量少用继承。原则:一个类中有另一个类的对象

时间: 2024-08-08 10:52:37

面相对象7大原则的相关文章

面相对象初始

一.初始面向对象 面向对象的程序的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux内核, git,以及Apach,HTTP,Server等. 面相对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当

php面向对象单例模式、工厂模式及6大原则

一.单例模式目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)做法1.将类的构造函数做成私有的2.在类里面做了一个公有的函数来造对象3.将该函数变为静态的4.在函数里面加控制 class Ren { public $name; static public $dx; //静态成员变量用来存储该对象 private function __construct() //把构造函数设置为私有,类的外部就不能用new造对象了 { } static function DuiXiang() //做一个

设计模式之6大原则(5)-迪米特法则

迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话.英文简写为: LoD. 迪米特法则可以简单说成:talk only to your immediate friends. 对于面向OOD来说,又被解释为下面几种方式:一个软件实体应当尽可能少的与其他实体发生相互作用.每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位. 迪米特

设计模式6大原则

单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障. 解决方案:遵循单一职责原则.分别建立两个类T1.T2,使T1完成职责P1功能,T2完成职责P2功能.这样,当修改类T1时,不会使职责P2发生故障风险:同理,当修

[设计模式](转)Java中的24种设计模式与7大原则

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; text-decoration: none; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: poin

OOP基本上有6大原则

OOP基本上有6大原则,而实际上都是互补的,也就是说一些原则需要利用另一些原则来实现自己.6大原则如下: 1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制.这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的.其他的原则也是对它的实现提供了路径. 2) Liskov Substituition Principle(LSP),里氏代换原则,很严格的原则,规则是"子类必须能够替换基

写给自己看的小设计4 - 对象设计通用原则之扩展原则

除了前面学习的那些核心原则,还有一些衍生的原则,掌握它们,你将更好的面向对象.不妨称它们为"扩展原则"吧. 迪米特法则:尽量不与无关的类发生关系. 迪米特法则全称Law of Demeter,简称LoD,也称为最少知识原则(Least Knowledge Principle,LKP).这个原则没什么固定的定义,大体上有这么几种说法: 1. 只与你的朋友说话 2. 不和陌生人说话 3. 对象应该只与必须交互的对象通信 通俗地讲,一个类应该对自己需要调用的类知道得最少,你调用的类的内部是如

软件编写和设计中的18大原则

软件编写和设计中的18大原则写在这里,自己经常看一看.作者Diggins是加拿大一位有25年编程经验的资深技术人员,曾效力于Microsoft和Autodesk,并创办过两家赢利的互联网公司. 下面的13和14合起来也被称作Shy原则. 1.避免重复原则(DRY - Don’t repeat yourself) 编程的最基本原则是避免重复.在程序代码中总会有很多结构体,如循环.函数.类等等.一旦你重复某个语句或概念,就会很容易形成一个抽象体. 2.抽象原则(Abstraction Princip

c# 面相对象2-之封装性

c# 面相对象2-之封装性 一.封装特性: 这是一种隐藏的特性.可以用一个公式来展示类的封装特性: 封装的类=数据  +  对此数据进行的操作(即算法) 通俗的说,封装就是:包起外界不必要知道的东西,只向外界展露可供展示的东西. 在面向对象理论中,封装这个概念拥有更为宽广的含义.小到一个简单的数据结构,大到一个完成的软件子系统,静态的如某个软件系统要收集数据信息项,动态的如某个工作处理的流程,都可以封装到一个类中. 具备这种封装的意识,是掌握面向对象分析与设计技巧的关键 二.类的成员: 成员变量