设计模式的基本原则:
1)开放封闭原则(OCP, Open For Extension, Closed For Modification Principle)
类的改动是通过增加代码进行的,而不是修改源代码。
2)单一职责原则(SRP, Single Responsibility Principle)
类的职责要单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。
3)依赖倒置原则(DIP, Dependence Inversion Principle)
依赖于抽象(接口), 不要依赖具体的实现(类),也就是针对接口编程。
4)接口隔离原则(ISP, Interface Segegation Principle)
不应该强迫客户的程序依赖他们不需要的接口方法。一个接口应该只提供一种对外功能,不应该把所有操作都封装到一个接口中去。
5)里氏替换原则(LSP, Liskov Substitution Principle)
任何抽象类出现的地方都可以用他的实现类进行替换。实际就是虚拟机制,语言级别实现面向对象功能。
6)优先使用组合而不是继承原则(CARP, Composite / Aggregate Reuse Principle)
如果使用继承,会导致父类的任何变换都可能影响到子类的行为。
如果使用对象组合,就降低了这种依赖关系。
7) 迪米特法则(LOD, Law of Demeter)
一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如在一个程序中,各个模块之间
相互调用时,通常会提供一个统一的接口来实现。这样其他模块不需要了解另外一个模块的内部实现细节,这样当一个模块内部的实
现发生改变时,不会影响其他模块的使用。
类与类之间的关系:
1 泛化(应该也叫继承吧)(Generalization)
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般画的关系是从子类指向父类的。
2 依赖(Dependency)(对象注入技术--将对象传递给含有对象指针参数的函数,那么此函数遍可以控制此对象了)
对象之间的临时关系,临时性体现在不超越方法的周期。在方法使用到的,如参数类,就一定是依赖关系。
3 关联(Association)

关联是通过实例来完成的,当一个实例化的类作为了另一个类的成员变脸。在此类中又调用了实例化类的成员函数,那么这个

成员函数的类和这个类就是关联关系

4 聚合(Aggregation)
   表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标、
5 组合(combination)
  表示两个对象之间是整体和部分的 强 关系,部分的生命周期不能超越整体,在我看来就是将另一个类作为成员变量,但是这个成员的变量的位置方式放在了构造函数里面,所以体现出了他很强吧,我直接构造了。

总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。

参考来源:传智播客--王保明

设计模式的基本原则 + 类与类之间的关系相关推荐

  1. UML类图中类之间的关系,聚合,组合,依赖总结

    下面我就根据下面这个图来讲解一下UML类图. 类图 首先,看动物那个矩形框,他就表示为一个类(Class).类图分为三层: 第一层显示类的名称 如果是抽象类,就用斜体表示 第二层显示类的特性,通常是字 ...

  2. 内存(Display)、显示器(Monitor)和计算机(Computer)均属于一种产品(Product),其中计算机需要显示器和内存。请用Python语言简要实现这些类及它们之间的关系。

    内存(Display).显示器(Monitor)和计算机(Computer)均属于一种产品(Product),其中计算机需要显示器和内存.请用Python语言简要实现这些类及它们之间的关系. clas ...

  3. JAVA面向对象-----接口与类、接口之间的关系

    接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...

  4. Java中基本数据类型和Object之间的关系

    1.基本数据类型和Object之间是没有关系的 2.基本数据类型的包装类 例如int 的包装类Integer的父类则是Object 输入:12 解释:在赋值的过程中进行自动装箱

  5. 面向对象:类与对象之间的关系

    什么是类? 类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象.在面向对象的程序设计语言中,类是对一类"事物"的属性与行为的抽象. 什么是对 ...

  6. Java中的类与对象之间的关系

    目录 1 面向对象思想 2 类和对象 1 类 2 对象 3 类与对象的关系 3 类的定义 4 对象的使用 5 成员变量的默认值 1 面向对象思想 对象泛指现实中的一切事物,每种事物都具备自己的属性和行 ...

  7. python基础------类与对象之间的关系,封装、继承、多态

    类与对象.封装.继承 练习1 # 1.写一个员工类BwEmployee class BwEmployee(object): # (2)添加构造方法,包含5个形参,保存外部传入值,分别给以下实例属性赋值 ...

  8. python类与类的关系_python 类与类之间的关系

    一.依赖关系(紧密程度最低) (1)简单的定义:就是方法中传递一个对象.此时类与类之间存在依赖关系,此关系比较低. (2)实例植物大战僵尸简易版 题目要求:创建一个植物,创建一个僵尸 1.植物:名字. ...

  9. 设计模式概述及UML的类图

    1.设计模式概述 1)简介 设计模式是面向对象设计中反复出现的问题的解决方案.这个术语的含义还存有争议.算法不是设计模式,因为算法致力于解决问题而非设计问 题.设计模式通常描述了一组相互紧密作用的类与 ...

  10. 浅谈UML类图中类之间的5种关系

    什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...

最新文章

  1. 带你和Python与R一起玩转数据科学: 探索性数据分析(附代码)
  2. linux登陆连接信息,成功登录后Linux关闭连接
  3. android 新浪财经截屏分享,[图]Android 12截图曝光:启用全新UI 增强隐私保护功能...
  4. Linux中的文件描述符与打开文件之间的关系
  5. 通过Athens搭建go私服
  6. Python解释器工作原理与jit技术
  7. Ubuntu20.04 编译运行apue.3e 避坑指南
  8. vue 集成 Loading 加载效果
  9. SpringBoot-探索回顾Spring框架本质
  10. obj[]与obj._Ruby中带有示例的Array.include?(obj)方法
  11. LVS-DR+Ldirectord+FreeNas实现负载均衡群集
  12. LOL英雄联盟首页以及攻略页面制作
  13. U盘直装CentOS 8并配置服务器环境教程指南
  14. 2021-07-05C#/CAD二次开发创建圆弧(4)
  15. 【应用案例】资产监测设备助力大棚月季花种植
  16. 美IT业25大秘密:Facebook耗时一周建成
  17. java win10窗口启动假死_win10桌面假死如何解决
  18. 2013---平静的心态迎接新的开始
  19. 查找和排序算法的学生成绩分析实验
  20. Ubuntu12.04连接小米开发

热门文章

  1. Perl语言入门14-17
  2. 微信小程序制作家庭记账本之一
  3. P3707 [SDOI2017]相关分析
  4. Mongodb 3.2.X 添加admin的root账户
  5. js实现一套代码来控制所有的运动,图片的淡入淡出,winth,height的变宽
  6. linux停止tomcat为什么要kill其掉进程 而不是直接shutdown.sh
  7. 2014.12.03 页面控件
  8. 多表连接的三种方式 HASH MERGE NESTED
  9. Security+ 学习笔记50 取证技术
  10. Security+ 学习笔记39 安全网络设计