zoukankan      html  css  js  c++  java
  • 设计模式个人笔记

    1.单例模式(singleton pattern)

    描述:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例

    笔记:通过改变构造函数实现

    2.工厂模式(factory pattern)

    描述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类

    笔记:把具体实现下移至子类。(依赖倒置原则)

    示例:JDBC。根据一个名字就改变链接数据库的方式

    3.策略模式(strategy pattern)

    描述:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换

    笔记:算法类实现接口,策略类定义好调用方式(不变)。经常和工厂模式混合使用,来控制具体调用哪个策略

    4.装饰模式(decorator pattern)

    描述:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活

    笔记:通过构造函数指定成员变量的方式,可以重复嵌套装饰类,并通过重写方法的方式不断循环调用被嵌套的重写方法。比起爆炸式的重复继承,这种装饰模式要方便灵活的多。(PS.继承超过2层以上,就要考虑是不是设计出了问题了)

    优点:有效的把类的核心职责和装饰功能区分开了。而且可以去除相关类中的重复的装饰逻辑

    5.代理模式(proxy pattern)

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

    笔记:通过实现接口,构造函数指定被代理类,执行被代理类的方法来实现。动态代理模式是AOP(切面编程)的核心机制。

  • 相关阅读:
    python 列表与字符串互相转化
    python爬虫——BeautifulSoup详解(附加css选择器)
    python——requests库
    用代理池 + redis 刷博客浏览量(2)
    scrapy爬取知乎用户信息并存入mongodb
    python 爬虫 计算博客园浏览量,刷浏览量(1)
    python SocketServer模块创建TCP服务器·
    【XSY1986】【BZOJ1455】罗马游戏
    【模板】左偏树
    CF464D World of Darkraft
  • 原文地址:https://www.cnblogs.com/xujanus/p/5534042.html
Copyright © 2011-2022 走看看