摘要:一、整体设计指导思想 二、创建型设计模式 1、单例模式 单例模式用来创建全局唯一的对象。一个类只允许创建一个对象(或者叫实例),那这个类就是一个单例类,这种设计模式就叫作单例模式。单例有几种经典的实现方式,它们分别是:饿汉式、懒汉式、双重检测、静态内部类、枚举。 那有什么替代单例的解决方案呢?如果要
阅读全文
摘要:一、访问者模式 1、访问者模式的概念 概念:允许一个或者多个操作应用到一组对象上,解耦操作和对象本身。 2、为什么要使用访问者模式 访问者模式针对的是一组类型不同的对象(PdfFile、PPTFile、WordFile)。不过,尽管这组对象的类型是不同的,但是,它们继承相同的父类(ResourceF
阅读全文
摘要:一、职责链模式 1、为什么使用职责链模式 定义:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 分类:职责链模式有两种常用的实现。一种是使用链表来存储处理器,另一种是使用数组来存储处理器 2、应用
阅读全文
摘要:设计模式要干的事情就是解耦。 创建型模式是将创建和使用代码解耦, 结构型模式是将不同功能代码解耦, 行为型模式是将不同的行为代码解耦,具体到观察者模式,它是将观察者和被观察者代码解耦。 一、观察者模式 1、为什么使用观察者模式 在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象
阅读全文
摘要:一、门面模式 1、为什么使用门面模式 门面模式。门面模式原理和实现都特别简单,应用场景也比较明确,主要在接口设计方面使用。 门面模式:为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。 应用场景 1. 解决易用性问题: 设计原则、思想、模式很多都是相通的,是同一个道理不同角度的表述。实际上
阅读全文
摘要:一、代理模式 1、为什么使用代理模式 业务系统中开发一些非功能性需求,比如:监控、统计、鉴权、限流、事务、幂等、日志。我们将这些附加功能与业务功能解耦,放到代理类中统一处理,让程序员只需要关注业务方面的开发。 2、代理模式的案例 (1)静态代理 实现相同接口+组合实现代理功能 import org.
阅读全文
摘要:一、创建型设计模式 单例模式 工厂模式 建造者模式 原型模式 二、单例模式 1、为什么要使用单例模式 有些数据在系统中只应该保存一份,就比较适合设计为单例类。比如,系统的配置信息类。 我们还可以使用单例解决资源访问冲突的问题。 2、单例模式的类型 饿汉式 懒汉式 双重检测 静态内部类 枚举 3、单例
阅读全文
摘要:一、 面向编程的理解 1、什么是面向对象编程 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 2、抽象类和接口 抽象类:表示类之间的 is-a 关系,不能被实力化,解决代码复用问题,同时保持多态特性。 自下而
阅读全文
摘要:一、为什么要学习设计模式 1、为什么学习设计模式 数据结构与算法之美”让你写出高效的代码,那这个设计模就是让你写出高质量的代码。 告别写被人吐槽的烂代码 提高复杂代码的设计和开发能力 让读源码、学框架事半功倍 为你的职场发展做铺垫 2、好的代码标准 1. 可维护性(maintainability)
阅读全文