博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【设计模式】设计模式概述以及七大原则
阅读量:4200 次
发布时间:2019-05-26

本文共 1121 字,大约阅读时间需要 3 分钟。

设计模式

设计模式

定义

面向对象的一套解决方案,提高代码的可复用性、可维护性、可读性、稳健性、安全性

本质

面向对象设计原则的实际应用

意义

对类的封装性、继承性、多态性以及类的关联关系和组合关系的理解

优点

  • 提高程序员的思维能力、编程能力、设计能力
  • 更好的设计

设计模式的基本要素

  • 模式:在某些场景下,针对某类问题的某种通用的解决方案。
  • 场景:项目所在的环境
  • 问题:约束条件,项目目标等
  • 解决方案:通用、可复用的设计,解决约束达到目标。

常用的七大原则

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则
  7. 合成复用原则

分类

在这里插入图片描述

创建型

创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。

单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式

结构型

结构型模式:把类或对象结合在一起形成一个更大的结构。

适配器模式、桥街模式、装饰模式、组合模式、外观模式、亨元模式、代理模式

行为型

行为型模式:类和对象如何交互,及划分责任和算法。

模板方法模式、命令模式、访问者模式、迭代模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、责任链模式

OOP的七大原则

开闭原则

  • 最基础、最重要的设计
  • 对扩展开放(提供方),对修改关闭(使用方)
  • 软件需要变化时。尽量扩展软件实体实现

里氏替换原则

继承必须确保超类所拥有的所有的性质在子类中仍然成立

  1. 继承:父类已实现的方法,实际是设计和规范契约,子类随意修改会破坏继承体系
  2. 继承的弊端:程序的侵入性,程序的可移植性降低,增加对像间的耦合性
  3. 引用基类的地方必须能透明的使用子类的对象
  4. 子类尽量不要重写父类的方法

依赖倒转原则

  • 高层模块不该依赖底层模块,二者应该依赖其抽象
  • 抽象不应该依赖细节,细节应该依赖细节
  • 依赖倒置的中心是面向接口编程
  • 使用接口或者抽象的原则是制定好规范,不涉及具体操作,把展现细节的任务交给实现类完成

单一职责原则

  • 一个类应该只负责一项职责
  • 控制类的粒度大小
  • 将对象解耦
  • 提高内聚性

注意

  1. 降低类的复杂度,一个类只负责一项职责
  2. 提高类的可读性,可维护性
  3. 降低变更引起的风险

接口隔离原则

Interface segregation principle

客户端不应该依赖它不需要的接口,即一个类对另外一个类的依赖应该建立在最小的接口上

合成复用原则

尽量先使用组合或者聚合关系等关联关系实现,其次才考虑使用继承关系来实现

迪米特法则

只与朋友交谈不和陌生人说话

  1. 一个对象应该对其他对象保持最少的了解
  2. 类与类关系越密切,耦合度越大
  3. 最少知道原则,只与直接朋友进行通信(有耦合关系)
    合成复用原则
    尽量使用合成/聚合的方式,而不是继承

转载地址:http://gofli.baihongyu.com/

你可能感兴趣的文章
罗永浩欲直播带货,京东说可以帮忙联系
查看>>
B站,正在变成下一个“公众号”?
查看>>
小米启动安心服务月 手机家电产品可免费清洁保养
查看>>
刘作虎:一加新品将全系支持 5G
查看>>
滴滴顺风车上线新功能,特殊时期便捷出行
查看>>
不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
查看>>
腾讯物联网操作系统TencentOS tiny线上移植大赛,王者机器人、QQ公仔、定制开发板等礼品等你来拿 !
查看>>
为云而生,腾讯云服务器操作系统TencentOS内核正式开源
查看>>
腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
查看>>
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>
腾讯优图开源视频动作检测算法DBG,打破两项世界纪录
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>
在中国提供了60亿次服务的疫情模块向世界开源
查看>>
世界卫生组织与腾讯加深合作 新冠肺炎AI自查助手全球开源
查看>>
Hibernate 中get, load 区别
查看>>
java反射详解
查看>>
JPA 注解
查看>>
JQuery 简介
查看>>
Java创建对象的方法
查看>>