静态代理:就是需要自己去实现代理对象与方法,
1. 定义一个接口,目标对象实现接
2.定义一个静态代理类源实现用一个接口,代理类创建时需要把目标对象作为参数传入到代理对象的构造函数,代理对象在实现接口是,可以对目标对象的方法进行增强
委派模式
委派模式(Delegate Pattern)的基本作用就是负责任务的调度和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的权限代理,但是代理模式注重过程,而委派模式注重结果
//客户请求(Boss)、委派者(Leader)、被被委派者(Target)
//委派者要持有被委派者的引用
//代理模式注重的是过程, 委派模式注重的是结果
//策略模式注重是可扩展(外部扩展),委派模式注重内部的灵活和复用
//委派的核心:就是分发、调度、派遣
//委派模式:就是静态代理和策略模式一种特殊的组合
3.策略模式
策略模式(Strategy Pattern)是指定义了算法家族,分别封装起来,让它之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户,可以避免多重分支的if...else
策略模式的适用场景
1.假如系统中有很多类,而他们的区别仅仅在于他们的行为不同
2.一个系统需要动态的在集中算法中选择一种
通俗说,我们在买商品选择支付的场景
开始支付,选择微信支付,支付宝,银联卡,京东白条,财付通(声明不同的类,实现一个定义接口)
//每个渠道它支付的具体算法是不一样的
//基本算法固定的
//这个值实在支付的是够决定用哪个值
策略模式的优点
1.策略模式符合开闭原则。对外扩展时开放的,对内修改时封闭
2.避免使用多重条件转移语句,例如 if....else,swich
3.使用策略模式可以提高算法的保密性和安全性
策略模式的缺点
1.客户端必须知道所有的策略,并且自行决定执行哪一个策略类
2.代码中会产生非常多的策略类,维护成本增加
原文:https://www.cnblogs.com/remenber/p/12330841.html