⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 反射_设计模式.txt

📁 Java大部分的基础知识,EJB3,EJB2,WEBSERVICE,SOAP,JMS,MQ,还有些面试题
💻 TXT
字号:
一、代理模式?
	代理查模式有三个角色,分别是通用接口、代理类、真实对象,
	代理类与真实对象实都实现的通用接口,将真实对象作为代理类的
	一个属性,向客户端公开的代理类,客户端调用代理类的方法,代理
	调用真实对象方法,在调用真实对象的方法之前之后可以做一些服务。


五、什么是反射?
	通过类说明可以得到这个类的父类、实现的所的接口、内部类、方法、
	构造子、属性,可以通过构造子实例化对象、唤起方法、取属性值,
	设置属性值。
六、得到类说明的三种方式?
	类.class
	对象.getClass();
	Class.forName("");//可以动态的注册类得到类说明。
七、得到所有构造并实例化对象?
	Class cus_cls=Class.forName("vo.Customer");
	//得到所有的构造子
	Constructor contrs[]=cus_cls.getConstructors();
	//得到一个构造子
	Constructor cons=cus_cls.getConstructor(new Class[]{String.class,String.class});
	Object obj=cons.newInstance(new Object[]{"张三","1234"});
八、得到所的有方法并唤起方法?
	//得到所有的方法
	Method methods[]=cus_cls.getMethods();
	//得到一个方法
	Method setCustomerName=cus_cls.getMethod("setCustomerName",new Class[]{String.class});
	Object customer=cus_cls.newInstance();//调用默认的构造子实例化得到一个对象
	setCustomerName.invoke(customer,new Object[]{"张三"});
九、得到所有的属性,取属性值,设置属性值?
	 //得到所有的属性
	 Field fields[]=cus_cls.getFields();
	 //得到一个属性
	 Field customerName=cus_cls.getField("customerName");
	 customerName.set(customer,"张三");
	 customerName.get(customer);
十、模式的好处是什么?
	提高代码的可扩展、可维护
十二、模式的原则?
	开闭原则:增加开放(可以替换已有的类),修改关闭(但对已有类不做修改)。
十三、框架设计的原则?
	上层依赖于下层,尽量减少下层对上层的依赖,层与层之间通过
	接口调用。
十四、工厂模式
	有三个角色抽象产品、具体产品、工厂,工厂产生具体产品返回
	抽象产品。
	如果没有用反射,当增加一个产品时,只需修改工厂,不用修改客户端
		半符合开闭原则。
	如果用了反射,当增加一个产品时,只需修改配置文件,不用修改客户端及
		工厂,完全符合开闭原则。
十五、单例模式:整个jvm中只有一个实例,有三个特点如下:
	1、私有的构造子
	2、私有的静态属性类型是自己
	3、公有的静态方法
		1、懒汉式:在真正取时才实例化
			 private static LazySingleton me;
			 public static LazySingleton newInstance()
			 {
			 	if(me==null)
			 	{
			 		me =new LazySigleton();
			 	}
			 	return me;
			 }
		2、饿汉式:在加载类时直接实例化
			  private static HungarySingleton me=new HungarySingleton();
十六、模板模式:有一个抽象类定义了具体方法及抽象方法,
	具体方法调用抽象方法,为抽象方法提供服务。
	子类继承抽象类,实现抽象方法,向客户端公开的
	子类,通过抽象类的具体方法调用子类实现的抽象方法,
	子类共用父类具体方法提供的服务。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -