美文网首页
设计模式学习(二)

设计模式学习(二)

作者: 其实都没有_8881 | 来源:发表于2019-03-20 09:52 被阅读0次

结构设计模式:用于继承和接口时的设计模式。

1.适配器模式

定义:允许使用不同的接口重构某个类,可以允许使用不同的调用方式进行调用

特点:低耦合,高扩展,新增方法都在接口里实现

使用场景:你想使用一个已经存在的类,而它的接口不符合你的需求/你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作/你想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口(仅限于对象适配器)

适配器模式代码一 适配器模式代码二 适配器模式代码三

2.桥接模式

定义:是一种对象结构型模式,将抽象部分与实现部分分离,使它们都可以独立地变化

特点:多个类组合使用,类与类之间可函数调用时作为参数传入,也可以作为成员传入(重点在public $method)

使用场景:利用接口,将不同的类 组装一组有相同名称的方法 ,利用接口把 PDO mysql mysqli 封装成相同都数据库操作

桥接模式代码

3.组合模式

定义:用于将对象组合成树形结构以表示“部分-整体”的层次关系

特点:可灵活的组合部分

使用场景:如树形菜单、文件夹菜单、部门组织架构图等

组合模式代码

4.装饰器模式

定义:对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构

特点:不用修改原始代码,在装饰器类类中继续利用原类的变量和方法

使用场景:多用于代码是别人所写,但是此人已离职,现在需要新增新功能,然后就可以在不用他人代码的时候添加进新的功能

装饰器模式代码

5.门面模式

定义:把几个子系统(实例或者类.统一一个统一的接口进行执行,客户端不用关注子系统,只用门面即可 )

特点:类的实例在门面类中进行

使用场景:比如Yii中操作DB类,我们不用管db类,而是直接使用链式查询

门面模式代码一 门面模式代码二

6.代理模式

定义:为其他对象提供一种代理以控制对这个对象的访问

特点:代理对象可以在客户端和目标对象之间起到中介的作用

使用场景 代理模式代码

7.享元模式

定义:运用共享技术有效的支持大量细粒度的对象

特点:如果类的实例化对象相同时,节省开支,不再创建实例,而是用同一个

使用场景:需要创建同一个类多个实例化时

该模式和单例模式的区别,单例模式一个类只能有一个对象,享元模式可以有多个,但是不能重复

享元模式代码 代码执行结果

相关文章

  • 设计模式学习(二)

    结构设计模式:用于继承和接口时的设计模式。 1.适配器模式 定义:允许使用不同的接口重构某个类,可以允许使用不同的...

  • 设计模式之观察者模式

    设计模式之观察者模式 本篇是设计模式系列博客的第四篇,本篇主要学习设计模式中的第二个行为型模式---观察者模式。 ...

  • 装饰者模式——IO流运用

    推荐博客Java设计模式学习09Java设计模式学习09Java设计模式学习09 装饰者模式还是比较难懂的。。。。...

  • 设计模式之单例模式

    单例设计模式全解析 在学习设计模式时,单例设计模式应该是学习的第一个设计模式,单例设计模式也是“公认”最简单的设计...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • monolake 的GeekBand C++开发学习笔记(十)

    前记:进入C++设计模式第二周,本周学习了构造类模式和接口隔离类模式。 创建型模式:前面说了设计模式的一个核心的原...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • 设计模式之前话一

    在进入具体的设计模式之前,我们有必要知道,设计模式是什么?为什么要学习设计模式?怎么学习设计模式?只有了解了这些问...

  • 设计模式:抽象工厂模式

    前言 来啦老铁! 笔者正在学习常见的设计模式,且将设计模式系列学习文章归入 “设计模式学习[https://www...

  • 设计模式:建造者模式

    前言 来啦老铁! 笔者正在学习常见的设计模式,且将设计模式系列学习文章归入 “设计模式学习[https://www...

网友评论

      本文标题:设计模式学习(二)

      本文链接:https://www.haomeiwen.com/subject/twywmqtx.html