创建型设计模式

简介: 创建型设计模式

设计模式

设计原则

依赖倒置

  • 高层模块不应该依赖低层模块,两者都应该依赖抽象;
  • 抽象不应该依赖具体实现,具体实现应该依赖于抽象;

开放封闭

  • 一个类应该对扩展(组合和继承)开放,对修改关闭;

面向接口

  • 不将变量类型声明为某个特定的具体类,而是声明为某个接口;
  • 客户程序无需获知对象的具体类型,只需要知道对象所具有的接口;

封装变化点

  • 将稳定点和变化点分离,扩展修改变化点;让稳定点和变化点的实现层次分离;

单一职责

  • 一个类应该仅有一个引起它变化的原因;

里氏替换

  • 子类型必须能够替换掉它的父类型;

接口隔离

  • 不应该强迫客户依赖于它们不用的方法;
  • 一般用于处理一个类拥有比较多的接口,而这些接口涉及到很多职责;
  • 客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上;

组合优于继承

  • 继承耦合度高,组合耦合度低;

模板方法

定义一个操作中的算法的骨架 ,而将一些步骤延迟到子类中。  Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

观察者模式

定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新

策略模式

定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客户程序而变化

目录
相关文章
简单练习Microsoft SQL Server MERGE同步两个表
【10月更文挑战第13天】本文介绍了在Microsoft SQL Server中使用`MERGE`语句同步两个表的步骤。首先创建源表`SourceTable`和目标表`TargetTable`并分别插入数据,然后通过`MERGE`语句根据ID匹配行,实现更新、插入和删除操作,最后验证同步结果。此方法可根据需求调整以适应不同场景。
487 1
|
存储 算法 C++
Hash与布隆过滤器
Hash与布隆过滤器
178 0
Hash与布隆过滤器
|
8月前
|
Linux 数据处理 Python
编译dpdk19.08.2中example时一系列报错解决
编译dpdk19.08.2中example时一系列报错解决
385 4
|
8月前
|
网络协议 安全 API
skynet.dispatch 使用详解
skynet.dispatch 使用详解
350 2
|
8月前
|
NoSQL 应用服务中间件 Redis
Docker 常用命令整理
Docker 常用命令整理
244 1
|
12月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
410 12
|
11月前
|
SQL 关系型数据库 MySQL
ubuntu22使用TrinityCore搭建魔兽世界服务器
ubuntu22使用TrinityCore搭建魔兽世界服务器
360 0
ubuntu22使用TrinityCore搭建魔兽世界服务器
|
网络协议 API 网络性能优化
TCP 和 UDP 协议的通信解析
TCP 和 UDP 协议的通信解析
485 2
TCP 和 UDP 协议的通信解析
|
网络协议 Linux
Reactor 模式结合 epoll
Reactor 模式结合 epoll
431 2
Reactor 模式结合 epoll
|
NoSQL Redis 监控
Redis常用命令指南
Redis常用命令指南
707 1
Redis常用命令指南