关闭

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

161人阅读 评论(0) 收藏 举报

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

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
查看评论

java开发多线程机制

最近用JAVA开发并发多线程机制,一般我们开发的程序都是只有一个主线程的,即MAIN()函数开始,但是在一些特别的场合下,比如服务器接受命令的 过程,可能需要同时处理多个客户端发送的命令,这时就需要征对每个客户建立一个线程。这样建立多线程程序,多线程可以使得在同一时间间隔内,执行多个指 令,以至于多...
  • flsmgf
  • flsmgf
  • 2015-05-18 00:37
  • 629

java开发中碰到的问题记录

积累的问题多了,就不怕问题来。 一,Eclipse配置问题 1.启动项目,内存溢出 Eclipse->Window->Preferences->Server->RuntimeEnvironments->选中Apache Tomcat v5.0->点击Edit按钮...
  • lipp555
  • lipp555
  • 2016-01-14 16:53
  • 872

java初学者常见的问题

本文为那些准Java程序员们准备了一系列广为流传的Java最佳编程实践:1.    优先返回空集合而非null如果程序要返回一个不包含任何值的集合,确保返回的是空集合而不是null。这能节省大量的”if else”检查。publicclass getLocationNa...
  • u011225629
  • u011225629
  • 2016-03-30 09:17
  • 2240

JAVA面向对象问题的汇总

(一)父类引用指向子类对象    问:Father obj=new Son();  //obj可以访问Son中的方法吗? 答:对于这个问题你要明白两点:1、何为覆盖2、何为对象引用,何为对象实体(重点) Father obj=new Son(); Fathe...
  • u010655348
  • u010655348
  • 2016-10-01 05:31
  • 158

Java入门代码示例--面向对象

范例3-1:定义一个Person类 class Person { // 类名称首字母大写 String name; // 定义类成员(属性) int age; // 定义类成员(属性) public void tell() { // 定义类方法,没有static System.o...
  • opera95
  • opera95
  • 2017-05-21 07:39
  • 304

初学JAVA面向对象最应该看的小程序

跟着视屏敲了一个十分简单的代码小游戏,感触很深,让我对java面向对象的设计理念有了进一步的理解,以及前期所学的java基础内容得到了巩固。万物皆对象,编程时思维很清晰。           ...
  • yunteng0923
  • yunteng0923
  • 2017-05-04 16:10
  • 212

读《面向对象的思考过程》作者matt Weisfeld

最近接触了很多java代码,开始于机缘巧合,读了《java编程思想》的大概前四分之一,这比我读《C++primer》还要多了,两本都是大部头,我能完整读完还需毅力。惊讶于两门语言语法非常的相似,之前对C++很熟悉,看java代码完全不费劲。C++与Java的区别在于java的纯粹,它是完全面向对象的...
  • czl389
  • czl389
  • 2017-02-22 11:36
  • 1095

Java开发过程中自己遇到的各种问题汇总(连载中)

Java开发过程中自己遇到的各种问题汇总开篇:这篇文章,全权作为自己的一个问题和错误的笔记录,记录着平时开发过程中,遇到的一些问题,以及相应的解决方法,直接就直白的放在这里了,给自己忘记的时候看看,做个小总结,也给大家借鉴! 开发常见问题 1、项目编码方式乱码解决 a、MyEclipse:右键单...
  • xiaozhouchou
  • xiaozhouchou
  • 2016-11-20 19:46
  • 705

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

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

我的java基础知识总结ppt

昨天加上今天,我把java基础知识总结的ppt做好了,其中包括: 1基础阶段所有项目展示 2.阶段自我总结,自己的提升和不足 3.后期学习规划 我在ppt里面把几个有代表性项目展示了出来,并且描述了我从中间学到了什么知识。 而且我也截了几张项目的图片在ppt上,增加了ppt的观赏性...
  • jjfly999
  • jjfly999
  • 2016-03-21 17:08
  • 2666
    个人资料
    • 访问:13402次
    • 积分:257
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    最新评论