摘要: 代理的概念与作用要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码。如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置是使用目标类、还是代理类,这样以后很容易切换,譬如,想要日志功能时就配置代理类,否则配置目标类,这样,增加系统功能很容易,以后运行一段时间后,又想去掉系统功能也很容易Eg: class X { void sayHello(){}}Xproxy{//既能实施原来的类,又能得 阅读全文
posted @ 2014-02-19 14:32 fred_zhang 阅读(874) 评论(0) 推荐(0) 编辑
摘要: 类加载器用到一个类,出现了这个类的名字,那么java虚拟机首先要把这个类的字节码加载到内存里来,通常这个字节码的原始信息放在硬盘classpath指定的目录下,我们把.class里面的内容加载到内存里来,再对他进行一些处理,处理完的结果就是字节码,处理就是类加载器的作用Java虚拟机中可以安装多个加载器,系统默认三个主要类加载器,每个类负责加载特点位置的类:BootStrap,ExtClassLoader,AppClassLoader类加载器也是java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这正是BootStrap——用C++写的二进 阅读全文
posted @ 2014-02-19 14:24 fred_zhang 阅读(667) 评论(0) 推荐(0) 编辑
摘要: J2SE之类之间的关系继承如果子类和父类在同一个包中,则子类继承了其父类中不是private的成员变量作为自己的成员变量,而且继承了父类中不是private的方法作为自己方法。如果子类和父类在不同的包中,那么子类将不会继承父类的友好变量和友好方法及不带权限标识的方法和成员变量,如果父类里的变量不是静态变量,当我们用new出一个子类对象,当我们用set方法改变实例变量的时候,改变父类的子类会变,改变子类的父类会变。如果new另一个子类则重新获得最原始的父类的实例变量。如果是静态的实例变量,父类的实例变量的改变,用任何子类访问的实例变量都改变!接口和抽象类声明方法的存在而不去实现它的类被叫做抽象类 阅读全文
posted @ 2014-02-19 14:12 fred_zhang 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 有三种对应类型的客户:VIP客户,普通客户,快速客户 ,异步随机生成各种类型的客户,各类型客户在其对应窗口按顺序依次办理业务 。本系统一共要产生三个号码管理器对象,各自管理一类用户的排队号码。这三个号码管理器对象统一由一个号码机器进行管理,这个号码机器在整个系统中始终只能有一个,所以,它要被设计成单例。各类型客户在其对应窗口按顺序依次办理业务 ,准确地说,应该是窗口依次叫号。各个窗口怎么知道该叫哪一个号了呢?它一定是问的相应的号码管理器,即服务窗口每次找号码管理器获取当前要被服务的号码。NumberManager和NumberMachine类l NumberManager类定义一个用于存储上一 阅读全文
posted @ 2014-02-19 03:55 fred_zhang 阅读(4072) 评论(1) 推荐(0) 编辑