对于代理模式、策略模式、模板模式的一些理解

其实之前自己并没有系统去学习设计模式,当然以前也有接触过一些,比如常见的有:工厂模式、单例……当然,我先前也没有系统地去学习过,所以,在此的一些理解只是自己在写代码过程中所推断的,并不一定符合标准的模式。下面谈下自己一些通俗的理解。


代理模式 :假如说现在有生产商、客户、 中间商 这个几个对象,那么,他们直接需要建立关系,产生作用的话,可以是生产商与客户直接的沟通,也可以两者通过一个中间商。而代理这种模式,差不多就是一种代理。其实,在日常生活中,我们有时候也会把中间商称之为代理,代理的作用就是本来一些可能在生产商或者客户之间需要完成的东西,可以转移到代理这个环节上来。反应到面向对象上来可以说是在A类或者B类上可能需要处理的东西,现在可以交给联系他们两者关系的 桥梁 C类,也就是所谓的代理来完成。

例子:我之前写的数据源,连接池的示例,写了一个Connection的代理,从而使加了连接池,数据源之后,对于Connection的 操作保持不变 ,和原始JDBC的方式一样。


策略模式 :从面向对象的角度,简单来说,是一种 基于接口 ,或者叫 抽象 的编程,一些主要的逻辑或者说流程,可以将他们高度抽象化,然后交给具体的某个类去实现,就是说,我为了实现某种功能,可以通过不同的方式去完成,也就是在此所谓的“策略”。就好比天热了,可以扇扇子,也可以扇电扇,或者开空调,它们这几种方式目的都是差不多的,目的上或许稍微有些差别,但影响不大,都是为了“凉快”,只是用了不同的“ 策略 ”。

例子:基于接口编程的方式


模板模式 :从字面上来理解,就是把某个功能实现过程的“ 通用 ”,或者“ 共同 ”的部分给提取出来,进行模块化。

例子:使用Junit进行单元测试的时候,在开始前可以自定义一些操作,在测试完成后也可以定义一些操作,中间是具体的测试过程。其实也可以把类的初始化,构造,析构(JAVA中可能没有这种说法,就是类的消亡)的过程看成一种基于模板的方式;Spring源码中有基于JDBC方式的操作,也是一种模板模式。


以上纯属自己的一些想法,不一定科学。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值