设计模式
文章平均质量分 65
.守心.
这个作者很懒,什么都没留下…
展开
-
观察者模式来啦
观察者模式本质上就两个关键的操作,观察者关心自己订阅的主题,主题数据有变化需要通知所有的观察者。原创 2023-12-05 14:12:50 · 778 阅读 · 0 评论 -
门面模式来啦
门面模式也叫外观模式在许多源码和实际案例中都有使用,例如后端代码框架MVC模式,slf4j源码使用等。原创 2023-10-31 15:54:21 · 118 阅读 · 0 评论 -
装饰器模式来啦
装饰器模式通过嵌套包装多个装饰器对象,可以实现多层次的功能增强。每个具体装饰器类都可以选择性地增加新的功能,同时保持对象接口的一致性。原创 2023-08-17 16:46:52 · 275 阅读 · 0 评论 -
桥接模式来啦
看图桥接模式本质上是两类不同对象的组合并完成同一个动作,其中把握好变化点(抽象类/接口)和变化点(抽象类/接口)的组合即可。例如斡旋造化神通是属于天道法则的变化点(因为天罡三十六神通都是参悟天道法则而成),手、枯藤也是属于神通载体的变化点(载体也可以是其他东西,例如树杈),然后对变化的进行组合和变化点的行为组合对了,你是女娲大神手捏的还是枯藤甩的👀。原创 2023-08-08 20:00:06 · 491 阅读 · 0 评论 -
适配器模式来啦
文章中一开始就说过代理模式和适配器模式是有相似的,get到了吗🤔代理模式和适配器模式(对象)都是以对象组合的方式进行代理和适配,不过不同的是代理相当于游戏中给游戏角色上外挂,只是对原有能力的增强。例如刺激战场的自动瞄准挂,原本角色就能开枪干人只是中不中的问题,加了外挂增强开枪干人的命中率并没有改变本质行为。适配模式则是本质上的改变,别人是开枪干人,结果你适配成开战斗机扫射。立秋 渐寒 添衣 勿病 安好。原创 2023-08-08 11:43:32 · 746 阅读 · 1 评论 -
代理模式来啦
静态代理对于这种,被代理的对象很固定,我们只需要去代理一个类或者若干固定的类,数量不是太多的时候,可以使用,而且其实效果比动态代理更好,因为动态代理就是在运行期间动态生成代理类,所以需要消耗的时间会更久一点。总结来说:目标类和代理类实现了相同的接口,在代理类中依赖了目标类,代理类的方法中调用了目标类的方法,并做了一些增强性的工作。动态代理指的是:在程序的执行过程中,使用jdk的反射机制,创建代理对象,并动态的指定代理的目标类。在出租房子的行为中,房东提供房源才是行为的基础,中介只是起到增强的行为。原创 2023-07-24 20:55:22 · 405 阅读 · 0 评论 -
构造者模式来啦
是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。原创 2023-07-20 20:45:38 · 96 阅读 · 0 评论 -
单例模式来啦
这种做法与上面那种最无脑的同步做法相比就要好很多了,因为我们只是在当前实例为null,也就是实例还未创建时才进行同步,否则就直接返回,这样就节省了很多无谓的线程等待时间,值得注意的是在同步块中,我们再次判断了synchronizedSingleton是否为null,解释下为什么要这样做。上面的做法很简单,就是将整个获取实例的方法同步,这样在一个线程访问这个方法时,其它所有的线程都要处于挂起等待状态,倒是避免了刚才同步访问创造出多个实例的危险,但是,这样的设计实在是糟糕透了,这样会造成很多无谓的等待。原创 2023-07-12 17:20:12 · 570 阅读 · 0 评论 -
设计模式总纲
单例模式原创 2023-07-12 17:16:05 · 333 阅读 · 0 评论 -
设计模式实战案例
1 设计模式设计模式源码https://gitee.com/practice-pine/design-pattern/tree/master/src/main/java/com/lian/song/designPattern原创 2022-04-06 15:40:12 · 402 阅读 · 0 评论 -
观察者模式
1、概述观察者模式又称为发布/订阅(Publish/Subscribe)模式观察者设计模式涉及到两种角色:主题(Subject)和观察者(Observer)(1)Subject模块Subjec模块有3个主要操作addObserver():注册添加观察者(申请订阅)deleteObserver():删除观察者(取消订阅)notifyObserver():通知所有的观察者对象isChange() : 主题状态发生变化时通知所有的观察者对象(2)Oserver模块Oserver模块有1个核心原创 2020-11-12 11:36:54 · 130 阅读 · 0 评论 -
策略模式
一、策略模式的定义—— 定义了一组算法,将每个算法包装起来,并且使它们之间可以互换—— 策略模式使这些算法在客户端调用它们的时候能够相互不影响的变化,改变不同算法的实现方式不影响客户端的使用,即策略模式让算法独立于使用它的客户端而独立变化。策略模式在Java中处处可以体现,TreeSet和TreeMap中均存在这样的构造方法:TreeSet(Comparator<? super E> comparator)和TreeMap(Comparator<? superK> compar原创 2020-11-11 21:45:30 · 121 阅读 · 1 评论 -
代理模式
1 静态代理在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式主要解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层优点: 1、职责清晰。 2、高扩展性。 3、智能化。缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些原创 2020-09-14 21:08:20 · 107 阅读 · 0 评论 -
桥接模式
1 桥接模式桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式2 类图3 实例package bridge;public interface Brand { void info();}class HuaWei implements Brand{ @Override public void info() {原创 2020-09-13 20:42:38 · 87 阅读 · 0 评论 -
适配器模式
1 适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,这种类型的设计模式属于结构型模式2 类图3 实例package adapter;public interface NetLine { void link();}class NetLineImpl implements NetLine{ @Override public void link() { System.out.println("连接电脑,正常上网原创 2020-09-13 20:21:11 · 103 阅读 · 0 评论 -
建造者模式
1 什么是构建者模式1.1 创建者模式又叫建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象1.2适用场景隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果1.3 主要作用在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象UML类图2 实例package builder;// 填充方法,返原创 2020-09-13 16:03:30 · 113 阅读 · 0 评论 -
工厂模式来啦
1 简单工厂模式SimpleFactorypackage factory.simplefactory;public class SimpleFactory { public static Cloth getCloth(String type){ if ("jok".equals(type)){ return new Jok(); }else if ("dress".equals(type)){ re..原创 2020-09-10 20:28:42 · 438 阅读 · 0 评论 -
原型模式
1 浅拷贝实例package prototype;import java.util.Date;public class Person implements Cloneable{ private String name; private Date born; public Person() { } @Override protected Object clone() throws CloneNotSupportedException { .原创 2020-09-13 15:52:56 · 100 阅读 · 0 评论