设计模式
左耳听风
公众号:左耳代码
展开
-
设计模式
模式简介一句话归纳应用场景代理模式 proxy1、两个参与角色:执行这(代理人)、被代理人2、对于被代理人来说,这件事情是一点要做的,但是我自己又不想做或者没时间做,找代理3、需要获取到被代理人的个人资料办事要求人,所以找代理(aop?aop是一种思想!)事务,权限,日志工厂模式 factory1、对调用这隐藏复杂的逻辑处理过程,调用这只关心执行结果2、工厂要对结果负责,保证生产出符合规范的产品只...原创 2018-07-01 11:13:33 · 169 阅读 · 0 评论 -
设计模式-代理模式
1.简介满足代理模式应用场景的三个必要条件a)两个角色:执行者、被代理对象b)注重过程,必须要做,被代理对象没时间做或者不想做,不专业c)执行者必须拿到被代理对象的个人资料(执行者持有被代理对象的引用)现实生活 房产中介:中介与你;媒婆:媒婆与你2.静态代理3.动态代理a)jdk代理b)cglib代理 cglib.jar(Code Generation Library 代码生成库)asm.jar(...原创 2018-07-01 11:14:26 · 167 阅读 · 0 评论 -
设计模式-工厂模式
1.简介隐藏复杂逻辑的处理过程,注重结果现实生活:我们需要一辆车,只需要关注这辆车生产后的,生产过程不用管,也不管生产车的工厂2.简单工厂实现:通过接受不同参数来返回不同对象实例问题:仅同过一个工厂生产不同的产品,业务逻辑紊乱,维护困难升级:给每个产品建个工厂,业务逻辑单独处理,高内聚---->工厂方法3.工厂方法实现:针对每一个产品提供一个工厂,要获得产品要先获得工厂的实例,然后再获得产品...原创 2018-07-01 11:15:03 · 142 阅读 · 0 评论 -
设计模式-单例模式
1.使用场景a)保证系统启动到终止,全过程只会产生一个实例b)当我们在应用中遇到功能性冲突的时候,需要使用到单例模式现实生活:你只能听命与一个老大,如果多个老大,观点不一样就产生冲突了2.上代码单例模式的7种不同写法:https://gitee.com/charjay/design公众号:左耳代码博 客:https://blog.csdn.net/charJay_lin...原创 2018-07-01 11:15:44 · 177 阅读 · 0 评论 -
设计模式-委派模式
1.简介角色:受托人,委托人(社会上是平等关系)公司里面:普通员工,项目经理(各自职责不一样)项目经理(委托人):主要职责是安排任务普通员工(受托人):执行任务2.特点a)类似与中介的功能(委托机制)b)持有被委托人的引用c)不关心过程,只关心结果(可以分发给不同员工执行,结果可能不同)d)干活是我的,功劳是你的(最重要的特点)3.与代理模式的不同两者都持有被委托人的引用,实现方式差不多代理模式关...原创 2018-07-01 11:16:28 · 392 阅读 · 0 评论 -
设计模式-策略模式
1.简介过程不同,但是结果一样现实生活:假设你要从福州到北京,你可以采取的策略有,汽车,动车,飞机等策略2.使用场景Collections.sort()函数spring jdbc rowmap3.代码地址 https://gitee.com/charjay/design公众号:左耳代码博 客:https://blog.csdn.net/charJay_lin...原创 2018-07-01 11:20:47 · 223 阅读 · 0 评论 -
设计模式-原型模式
1.简介原型模式即克隆a)过程相同,但是结果不一样b)数据内容完全一样,但是实例不同现实生活:孙悟空72变,克隆2.使用场景ORM框架,fastjson记录行转换为java对象3.代码有深克隆与浅克隆地址 https://gitee.com/charjay/design公众号:左耳代码博 客:https://blog.csdn.net/charJay_lin...原创 2018-07-01 11:21:53 · 226 阅读 · 0 评论 -
设计模式-模板模式
1.简介a)固定执行流程,就叫模板现实生活:冲饮料,第一步与第三步是固定的,按这个模板来冲饮料1、把水烧开(固定)2、把杯子准备好、原材料放到杯中3、用水冲泡(固定)4、添加辅料2.使用场景SpringJDBC是java规范,各个数据库厂商自己去实现1、加载驱动类DriverManager2、建立连接3、创建语句集(标准语句集、预处理语句集)(语句集? MySQL、Oracle、SQLServe...原创 2018-07-01 11:22:28 · 157 阅读 · 0 评论