设计模式入门

简介: 前言  俗话说,好记性也不如烂笔头,最近开始阅读设计模式这方面的书籍,算是借此开个好头,把一些理解的和不太理解的都写下来。本人工作时间不长,经验、资历各方面也还比较欠缺,但目前来说还是很有决心多看一点好书,做好一些事情的。

前言

  俗话说,好记性也不如烂笔头,最近开始阅读设计模式这方面的书籍,算是借此开个好头,把一些理解的和不太理解的都写下来。本人工作时间不长,经验、资历各方面也还比较欠缺,但目前来说还是很有决心多看一点好书,做好一些事情的。

  去年就入手了好几本设计模式类的书籍,有《大话设计模式》、《设计模式之禅》和《Head First设计模式》,不过直到最近也是一次都没翻开过。前不久决心从《大话设计模式》看起,并开始记录这个设计模式入门。

百科

设计原则

  面向对象编程中一般遵循以下几个原则,设计模式就是为了实现这些原则,从而达到了代码复用、提高可维护性的目的:

  1. 开放封闭原则 (OCP, Open Closed Principle)
  • 对扩展开放,对更改封闭
  1. 里氏替换原则 (LSP, Liskov Substitution Principle)
  • 子类型必须能够替换掉它们的父类型
  1. 依赖倒转原则 (DIP, Dependency Inversion Principle)
  • 依赖抽象而不依赖于具体,高层模块不能依赖低层
  1. 接口隔离原则 (ISP, Interface Segregation Principle)
  • 使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合
  1. 单一职责原则 (SRP, Single Responsiblity Principle)
  • 就一个类而言,应该只有一个引起它变化的原因
  1. 合成/聚合复用原则 (CARP, Composite/Aggregate Reuse Principle)
  • 尽量使用合成/聚合,而不是使用类继承
  1. 最小知识原则,也叫迪米特法则 (PLK, Principle of Least Knowledge)
  • 实体应尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立

设计模式

  GOF在《Design Patterns: Elements of Reusable Object-Oriented Software》(《设计模式:可复用面向对象软件的基础》)一书中将设计模式划分为三种类型,共计23种:

  • 创建型(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式;
  • 结构型(7种):适配器模式、装饰器模式、桥接模式、组合模式、外观模式、享元模式、代理模式;
  • 行为型(11种):模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式、访问者模式。

关系图

img_24099d2e81ddc45c10eaea9b61d0205e.jpe
设计模式关系图
目录
相关文章
|
1月前
|
设计模式 Java
【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)
【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)
50 2
|
1月前
|
设计模式 XML Java
【设计模式】装饰器模式(定义 | 特点 | Demo入门讲解)
【设计模式】装饰器模式(定义 | 特点 | Demo入门讲解)
29 0
|
1月前
|
设计模式 传感器
【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)
【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)
39 0
|
1月前
|
设计模式 算法 Java
【设计模式】策略模式(定义 | 特点 | Demo入门讲解)
【设计模式】策略模式(定义 | 特点 | Demo入门讲解)
19 0
|
6月前
|
设计模式 监控 安全
多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
101 0
|
2月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
4月前
|
设计模式 Java 数据安全/隐私保护
Java中的设计模式:从入门到精通
Java中的设计模式:从入门到精通
|
6月前
|
设计模式 安全 Java
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
79 0
|
设计模式 算法 Java
JAVA设计模式--从入门到精通(下)
JAVA设计模式--从入门到精通
|
设计模式 Java 测试技术
JAVA设计模式--从入门到精通(上)
JAVA设计模式--从入门到精通

热门文章

最新文章

  • 1
    C++一分钟之-设计模式:工厂模式与抽象工厂
    42
  • 2
    《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
    46
  • 3
    C++一分钟之-C++中的设计模式:单例模式
    54
  • 4
    《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
    38
  • 5
    《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
    62
  • 6
    Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
    57
  • 7
    Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
    41
  • 8
    Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
    50
  • 9
    Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
    106
  • 10
    Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
    78