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

原创 2016年07月05日 14:44:53

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

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. 在工厂类的静态方法中,通过判断传入的参数来决定返回值得不同,返回值是直接创建一个对应的产品对象
优势:在新增一个类的时候,只需要在方法中添加一个判断条件即可。
可以动态改变返回的对象值

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java开发之旅之面向对象

Java开发之旅之面向对象 ----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 类是组成...
  • jy_aicn
  • jy_aicn
  • 2013年12月24日 20:50
  • 400

面向对象抽象思维与java继承机制

  • 2014年01月26日 17:20
  • 133KB
  • 下载

Java机制和面向对象开发方法

Java程序运行机制 Java程序的执行必须经过先编译、后执行两个步骤。他既具有编译型语言的特征,又具有解释型语言的特征。所以他既不是纯粹的编译型语言,例如C/C++,也不是纯粹的解释性语言,例如P...

java 关于初学面向对象的问题四:抽象类

抽象类和接口是多态应用时使用最多的。多态是面向对象编程的一个非常重要的思想,它的含义就是父类的引用指向子类的对象。而抽象类和接口都是用来集成的,不能用来创建对象。...

Java学习系列(九)Java面向对象之异常机制详解

异常处理机制用来保障我们的程序更加健壮,无论用户怎么操作,都能保证我们的程序都能正常应对的一种处理机制。 一般格式如下: try{ // 尝试让它执行业务处理,如果可以执行完成,就代表一切正常...

<JavaSE学习笔记>面向对象(2):Java内存机制

一 Java内存机制概述 作者是先学习C++,后来才学习的Java。在编写程序的时候,感觉二者最不一样的地方就是:在Java中,程序员并不需要对动态开辟的存储空间(new创建的对象或数组)进行回收(d...

JAVA面向对象-----包机制

JAVA面向对象—–包机制问题: 当定义了多个类的时候,可能会发生类名的重复问题。 在java中采用包机制处理开发者定义的类名冲突问题。 怎么使用java的包机制呢? 1.使用pac...

java运行过程,初始化的顺序,构造函数,变量作用域,反射机制,面向对象的特征

java运行过程,初始化的顺序,构造函数,变量作用域

Java进阶(面向对象中的继承机制)

类与类之间的关系不只有依赖、关联、聚合、组合,还有一种叫继承。     Java中用extends关键字来实现类的继承机制:class 类名 extends 父类{}     通过继承,子类自动拥...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 关于初学面向对象的问题九:java开发的某些机制
举报原因:
原因补充:

(最多只允许输入30个字)