设计模式简介

简介: 设计模式简介

一、 理解面向对象编程

对象:

1

2

3

1.开发的应用程序内的实体

2.实体直接可以通过交互来解决现实世界的问题

例: Person是实体,而Car也是实体。Person可以驾驶Car从一个地方到另一个地方

类:类可以帮助开发人员表示现实世界中的实体

1

2

3

1.类可以定义对象的属性和行为。属性是数据成员,行为由成员函数表示

2.类包含构造函数。这些函数的作用是为对象提供初始状态

3.类就像模板一样,非常易于重复使用

方法:

1

2

1.他们表示对象的行为

2.方法可以对属性进行处理,从而实现所需的功能

二、面向对象编程的主要概念

1、封装  

1

2

3

1.对象的行为对于外部世界来说是不可见的,或者说对象的状态信息是私密的

2.客户端不能通过直接操作来改变对象的内部状态。想反,客户端需要通过发送消息来请求对象改变其内部状态

3.Python没有提供封装的关键字,当时在变量或函数前缀加上__,可以将其访问属性变为私有

2、多态

1

多态有两种类型:1.对象根据输入参数  提供方法的不同实现2.不同类型的对象可以使用相同的接口   

3、继承

1

2

3

1.继承表示一个类可以继承父类的功能(大部分)

2.继承被描述为一个重用基类中定义的功能并允许对原始软件的实现进行独立扩展的选项(父类重写)

3.继承可以利用不同的对象之间的关系建立层次结构,并且支持多从继承(继承多个基类)

4、 抽象

1

2

1.它提供了一个简单的客户端接口,客户端可以通过该接口与类的对象进行交互,并可以调用该接口中定义的各个方法

2.它将内部类的复杂性抽象为一个接口,这样客户端就不需要知道内部的细节进行抽象处理

5、组合

1

2

1.它是一种将对象或类合成更复杂的数据结构或软件实现的方法

2.在组合中,一个对象可以调用其他模块中的成员函数,这样无需通过继承就可以实现基本功能的跨模块调用

三、面向对象的设计原则  

1.开放/封闭原则

1

2

开放/封闭原则规定,类或对象及其方法对于扩展来说是开放的,但是对于修改是封闭的

简单的说,在软件开发的时候,一定确保以通用的方式来编写类或模块,以便当需要的时候扩展类或对象行为时不必修改类本身。

优点如下:

1

2

1.现有的类不会被修改,因此退化的可能性较小

2.有助于保持以前代码的向后兼容性

2.控制反转原则

1

2

控制反转原则是指高层级的模块不应该依赖于低层级的模块,他们都应该依赖于抽象

该原则建议任何两个模块都不应以紧密的方式相互依赖

优点如下:  

1

2

1.削弱了模块间的耦合,因此消除了系统中的复杂性/刚性

2.由于在依赖模块间有一个名称的抽象层,因此便于通过更好的方式处理模块间的依赖关系

3.接口隔离原则

1

接口隔离原则规定,客户端不应该依赖于他们不需要使用的接口

优点如下:  

1

2

1.它强制开发人员编写'瘦身型'接口,并使方法和接口紧密相关

2.防止向接口中随意添加方法

4.单一职责原则  

1

2

类的职责单一,引起类变化的原因单一

如果一个类实现了两个功能,最好将他们分开,也就是说,功能才是改变的理由

优点如下:

1

2

1.每当一个功能发送变化发生变化时,除了特定的类需要改变外,其他类无需改变

2.如果一个类有多种功能,那么依赖他的类必定会由于多种原因发生,这种情况应该避免

5.替换原则

1

替换原则规定,派生类必须能够完全替代基类

四、设计模式概念  

1.设计模式主要特点 

1

2

3

它们是语言无关的,可以用多种语言实现

它们是动态的,随时会有新的模式引入

它们可以定制

2.设计模式优点  

1

2

3

4

它们可以在多个项目中重复使用

问题可以在架构级别使用

它们都经过了时间的验证

它们具有可靠性和依赖性

3.设计模式的分类  

1

2

3

4

代码段:用某种语言编写的一段具有特殊用途的代码

设计:用来解决某个特定问题的优秀解决方案

标准:这是一种解决某类问题的方法,同非常通用并且适用于当前的情况

模式:这是一个经过时间考验的、高效、可扩展的方案,能够解决一类已知问题

4.上下文--设计模式的实用性  

1

2

3

4

参与者:它们是设计模式中用到的类,类可用在模式中扮演不同的角色,已完成多个目标

非功能需求:诸如内存优化、可用性和性能需求都属于此类型。由于这些因素影响整个软件解决方案,因此至关重要

权衡:并非所有的设计模式都适用程序开发

结果:如果上下文不合适,设计模式可能对代码产生负面影响,开发人员应当了解设计模式的结果和用途

5.模式的分类  

创建型模式: #单例模式是创建型模式的一个例子

1

2

3

它们的运行机制基于对象的创建方式

它们将对象创建的细节隔离开来

代码所创建的对象与类型无关

这里有6个具体的创建型模式可供研究,它们分别是:

1

2

3

4

5

6

7

8

9

10

11

简单工厂模式(Simple Factory)

 

工厂方法模式(Factory Method)

 

抽象工厂模式(Abstract Factory)

 

创建者模式(Builder)

 

原型模式(Prototype)

 

单例模式(Singleton)

说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一。

结构型模式   #适配器模式是结构型模式的一个例子  

1

2

3

致力于设计出能够通过组合获得强大功能的对象和类的结构

重点是简化结构并识别类与对象之间的关系

主要关注类的继承和组合

这里有7个具体的结构型模式可供研究,它们分别是:

1

2

3

4

5

6

7

8

9

10

11

12

13

外观模式(Facade)

 

适配器模式(Adapter)

 

代理模式(Proxy)

 

装饰模式(Decorator)

 

桥模式(Bridge)

 

组合模式(Composite)

 

享元模式(Flyweight)

行为型模式  #观察者模式是行为模式的一个例子  

1

2

关注对象之间的交互以及对象的响应性

对象应该能够交互,同时仍然保持松散耦合

这里有11个具体的行为型模式可供研究,它们分别是:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

模板方法模式(Template Method)

 

观察者模式(Observer)

 

状态模式(State)

 

策略模式(Strategy)

 

职责链模式(Chain of Responsibility)

 

命令模式(Command)

 

访问者模式(Visitor)

 

调停者模式(Mediator)

 

备忘录模式(Memento)

 

迭代器模式(Iterator)

 

解释器模式(Interpreter)

参考链接:https://www.cnblogs.com/alex3714/articles/5760582.html

相关文章
|
设计模式 前端开发 数据库
Django的简介安装与配置及两大设计模式1
Django的简介安装与配置及两大设计模式1
132 1
|
设计模式 关系型数据库
【设计模式——学习笔记】设计模式简介+七大设计原则介绍(下)
【设计模式——学习笔记】设计模式简介+七大设计原则介绍
113 0
|
关系型数据库 MySQL 数据库
Django的简介安装与配置及两大设计模式2
Django的简介安装与配置及两大设计模式2
103 0
|
2月前
|
设计模式 Java 关系型数据库
设计模式——设计模式简介和七大原则
设计模式的目的和核心原则、单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则
设计模式——设计模式简介和七大原则
|
4月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
63 6
|
5月前
|
设计模式 Java
【Java设计模式 - 专栏开篇简介】 java设计模式开篇
【Java设计模式 - 专栏开篇简介】 java设计模式开篇
39 0
|
6月前
|
设计模式 存储 前端开发
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
106 4
|
6月前
|
设计模式 Java Spring
Spring5深入浅出篇:Spring与工厂设计模式简介
Spring5深入浅出篇:Spring与工厂设计模式简介
|
设计模式 Java 程序员
【设计模式——学习笔记】设计模式简介+七大设计原则介绍(上)
【设计模式——学习笔记】设计模式简介+七大设计原则介绍
51 2
|
设计模式 算法 关系型数据库
设计模式——设计模式简介、分类及面向对象设计原则
23 种设计模式中有些模式今天已经不流行了,有些模型已经被语言机制替代了,有些模式你可能常常会忘记,但这些都不重要,重要的是设计原则,因为有了这些设计原则,你有可能发明自己的模式,你也可以理解未来千千万万其他领域的模式。
101 1