Mybatis涉及的设计模式——建造者模式、工厂模式、代理模式

设计模式,这也是系统架构师的必由之路。
构建者/建造者模式
①把对象的创建细节隐藏,使用者直接调用方法直接拿到对象。
②建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
③意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
④ 何时使用:一些基本部件不会变,而其组合经常变化的时候。
菜鸟教程之构建者模式
⑤组成:
在这里插入图片描述

感悟看完菜鸟教程的构建者模式的例子后,我们发现是这样的:首先创建接口,然后创建实体类,然后实体类可能还有子类,接着创建一个类,这个类中的方法,还有一个builder类,实现对各部分的组装。我们就可以new一个builder对象,直接使用bulider类的方法实现对一些先前的接口和类的组合使用。

注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。

工厂模式
①工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种“创建对象”的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
②意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
③主要解决:主要解决接口选择的问题。
④不用new。可以解耦,降低类之间的依赖关系。
菜鸟教程之工厂模式
感悟看完菜鸟教程的工厂模式的例子后,我们发现是这样的:首先创建一个接口,然后创建实现接口的实体类,接着创建一个工厂,生成基于给定信息的实体类的对象,最后我们使用的时候就直接使用该工厂,通过传递类型信息来获取实体类的对象。所以我们在真正使用的时候不要需要new对象,而是直接使用工厂就可以获取我们所需的对象。
⑥实际应用:工厂模式是我们最常用的实例化对象的模式,是用工厂方法代替new操作的一种模式。该模式在java中经常见到。因为工厂模式相当于创建实例对象的new,我们经常要根据Class生成实例对象,所以以后new的时候可以考虑是否使用工厂模式,虽然这样做会多一些工作,但会给系统带来更大的扩展性和尽量少的修改量。
学习时找到的文章

代理模式
①我们创建的web项目会部署到服务器,我们不能总是停掉服务器进行修改,重新的编译、运行。代理模式是一种热部署,在不修改源码的基础上对已有的方法进行增强以加以控制。
②在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。我们创建具有现有对象的对象,以便向外界提供功能接口。
③意图:为其他对象提供一种代理以控制对这个对象的访问。
④主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层
菜鸟教程之代理模式
⑤组成:抽象角色:通过接口或者抽象类声明真正角色实现的业务方法。代理角色:实现抽象类角色,是真正的代理角色,通过真正角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真正的角色所要实现的业务逻辑,供代理角色调用。
感悟看完菜鸟教程的的代理模式例子后,我们发现是这样的:首先创建一个接口,然后创建实现接口的实体类——包括被代理类和代理类,我们发现代理类里面有被代理类的对象,其中的方法对被代理类进行一些操作,接着当被请求时,可以使用 ProxyImage 来获取 RealImage 类的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值