java 关于初学面向对象的问题九:java开发的某些机制

代理模式:为对象提供一个代理以控制对该对象的访问
作用:增加或者减少服务
实现方式: 

1、继承 静态代理 不推荐使用 高耦合度
2、关联方式 静态代理 依赖 接口 有一个接口,真实类实现该方法,代理类也实现该方法,并且真实类是代理类的一个属性
抽象类 -》真实类 -》代理类 耦合度低
3、动态代理 反射机制 动态创建类 JDK动态代理类:
实现接口 InvocationHandler 方法 Object invoke()
参数:被代理对象  执行的方法  方法参数
Proxy类 newProxyInstance()
参数: 被代理的类加载器  被代理实现的所有接口 一个代理类处理逻辑的地方

代理的处理方法:

  1. 代理类与真实类继承自同一接口
  2. 代理对象持有真实对象的引用
  3. 代理的方法与被代理的方法要求同样的声明
  4. 方法体插入代理类自有代码《可选》
  5. 方法体调用真实类方法
  6. 方法体插入代理类自有代码《可选》
  7. 代理类允许有自己的方法

装饰模式:

类似于BufferedOutputStream和OutPutStream之间的关系

装饰模式的处理方法;

  1. 构建原始类
  2. 构建装饰类,持有原始类的对象为属性
  3. 在构造方法中将原始类对象传入
  4. 构建同样的方法声明,在方法体中调用原始类方法,再添加其它方法
  5. 装饰类允许有自己的方法
关于类的功能扩展的几种方式的区别:
1、代理模式:主要是控制访问
2、装饰模式:主要是增加功能
3、继承:增加功能,增加属性

工厂模式:根据传入参数的不同而返回不同的实际对象。
工厂模式的处理方法:
  1. 有一个工厂类,工厂类持有需要生产的产品的引用,并且提供一个静态的返回值为产品接口的带参数的方法
  2. 有一个接口(或者抽象类,一般不为类),该接口是工厂需要生产的产品
  3. 至少有一个类实现了该接口,实现该接口的所有方法,也许每个实现类的方法是不一致的,一般情况下他不具有接口定义以外的方法
  4. 在工厂类的静态方法中,通过判断传入的参数来决定返回值得不同,返回值是直接创建一个对应的产品对象
优势:在新增一个类的时候,只需要在方法中添加一个判断条件即可。
可以动态改变返回的对象值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值