![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
ba_pi
这个作者很懒,什么都没留下…
展开
-
23种设计模式之享元模式
享元模式享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。享元模式的本质是缓存共享对象,降低内存消耗。享元模式的主要优点是:相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。其主要缺点是:为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。读取享元模式的外部状态会使得运行时间稍微变长。pub原创 2022-01-06 21:52:21 · 92 阅读 · 0 评论 -
23种设计模式之装饰器模式
装饰器模式装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。装饰器模式的主要优点:装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵守开闭原则有些人早餐可能会吃煎饼,煎饼中可以加鸡蛋,也可以加香肠,但是不管怎么“加码”,都还是一个煎饼。在现实生活中,常常需要对现有产品增加新的功能原创 2021-12-16 19:53:27 · 312 阅读 · 0 评论 -
23种设计模式之桥接模式
桥接模式桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。举个栗子。车企生产汽车,有不同类型以及不同颜色,例如生产suv,吉普车,轿车,颜色以红色与黄色举例。遵循了里氏替换原则和依赖倒置原则,最终实现了开闭原则,对修改关闭,对扩展开放。桥接(Bridge)模式的优点是:抽象与实现分离,扩展能力强符合开闭原则符合合成复用原则其实现细节对客户透明所以在学习设计模式的时候发现与设计原则在很大原创 2021-12-15 18:02:12 · 277 阅读 · 0 评论 -
23种设计模式之代理模式
代理模式代理模式有2种应用场景1.权限控制。2.功能增强。例:一酒厂不直接卖酒,通过代理商来卖酒,代理商进行包装及返点卖给客户。直接上代码public class WineProxyTest { public static void main(String[] args) { WineProxyStore wineProxyStore = new WineProxyStore(); wineProxyStore.sell(); }}int原创 2021-12-07 20:34:59 · 241 阅读 · 0 评论 -
23种设计模式之建造者模式
建造者(Builder)模式由产品、抽象建造者、具体建造者、指挥者等 4 个要素构成。用建造者(Builder)模式描述客厅装修。这里客厅是产品,包括墙、电视和沙发等组成部分。具体装修工人是具体建造者,他们负责装修与墙、电视和沙发的布局。项目经理是指挥者,他负责指挥装修工人进行装修。public class ParlourDecorator { public static void main(String[] args) { try { Decorato原创 2021-12-05 22:25:56 · 270 阅读 · 0 评论 -
23种设计模式之工厂模式
工厂模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”。...原创 2021-12-02 20:44:08 · 209 阅读 · 0 评论 -
23种设计模式之原型模式
原型模式用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。原型模式有2种实现方式,浅克隆和深克隆。浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。由于 Java 提供了对象的 clone() 方法,所以用 Java 实现原型模式很简单。实现Cloneable接口,重写clone方法。例如,user类: /**原创 2021-11-20 11:51:34 · 95 阅读 · 0 评论 -
软件设计七大原则之开闭原则
开闭原则简单描述:对扩展开放,对修改关闭。开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。实例1:课程以C语言中文网的教程体系为例,来讲解如何使用开闭原则解决实际问题。创建一个 Java 教程的类 JavaCourse。现在要给 Java 教程做活动,价格优惠。如果修改 JavaCourse 类中的 getPrice() 方法,则会存在一定防线,可能影响到其它地方的调用结果。UML图1.首先创建一个教程接口 IC原创 2021-11-11 12:02:38 · 1802 阅读 · 0 评论 -
设计模式之单例
最近在看毕向东老师的java基础,学到了很多东西,在这里做一些笔记。单例设计模式的应用场景,简单理解为用来创建不可变对象(一个内存只存在一个)。保证对象唯一:禁止其他程序创建(构造函数私有化)为了其他程序访问,在本类中自定义对象(类中创建对象)其他程序提供访问方式(public 方法访问)有2种方式创建,懒汉式与饿汉式。饿汉式 * 饿汉单例模式 */class Studen...原创 2019-05-12 21:49:37 · 145 阅读 · 0 评论