设计模式
二十六圈的人生操场
天有日月而照临万方,人有眼目而明见万象
展开
-
代理模式【Proxy Pattern】
小故事: 什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧;就比如古代每个男人的爱好–逛青楼;初来乍到的你肯定不知道哪个姑娘更加风情万种,所以这个时候你需要找到老鸨给你推荐(啧啧啧),老鸨其实就是这些姑娘们的代理人;那么用java程序怎么表示呢,接下来就见分晓 代码演示: 1、首先定义一种类型(既然都在青楼中,里面的姑娘肯定都是同一种类型,包括老鸨) package com.design.dp.proxy; // 定义姑娘们的类型以及她们能做的事情 public interface K原创 2021-06-29 21:28:08 · 225 阅读 · 0 评论 -
【设计模式】享元模式
享元模式(Flyweight Pattern) 享元模式:主要用于减少创建对象的数量,以减少内存占用和提高性能;String常量池以及数据库连接池是享元模式的应用实例 含义: 享元模式会尝试重用现有的同类对象,如果未找到匹配的对象,才会进行创建对象的操作。 应用场景: 在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。 优点: 大大减少对象的创建,降低系统的内存,使效率提高 缺点: 提高了系统的复杂度,需要分离出外部状态和内部原创 2020-07-10 16:32:29 · 148 阅读 · 0 评论 -
【设计模式】装饰器模式
装饰器模式(Decorator Pattern) **解释:**可以向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装; 含义: 创建一个装饰类,用于包装原有的类,在保持原有类完整性的前提下,提供了额外的功能;这样可以动态地给一个对象添加一些额外的职责,同时避免新添加代码与原有代码之间的耦合度过高; 使用场景: 在不增加很多子类的情况下扩展类,添加一些需要特定实现的业务 优点: 装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模原创 2020-07-10 14:14:38 · 133 阅读 · 0 评论 -
【设计模式】抽象工厂模式
抽象工厂(Abstract Factory Pattern) 抽象工厂模式:可以理解为是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 含义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 使用场景:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。 优点:当一个产品族中的多个对象被设计原创 2020-06-23 16:18:28 · 160 阅读 · 0 评论 -
工厂模式【Factory Method Pattern】
工厂模式 工厂模式:Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 含义:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口 缺点:原创 2020-06-23 15:03:04 · 153 阅读 · 0 评论 -
策略模式【Strategy Pattern】
策略模式: 在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 目的:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换; 优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。 缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。 例如:诸葛亮的锦囊妙计,每一个锦囊就是一个策略;诸葛亮原创 2020-06-23 14:08:53 · 165 阅读 · 0 评论 -
单例模式【Singleton Pattern】
单例模式: 属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例) 单例构建方式 1:饿汉式 类加载到内存后,就实例化一个单例,JVM保证线程安全 优点:简单实用(推荐使用) 缺点:不管用到与否,类装载时就会完成实例化 public class Singleton01{ private static final Singleton01 INSTANCE = new Singleton01();原创 2020-06-23 09:20:45 · 179 阅读 · 0 评论