spring IOC BOP
C&C面向对象核心:多态
动态代理:哪个代理对用户是透明的。JDK: Complier API 调编译器编译开源项目:CGLib 直接写二进制ASM
静态代理:/* * 一个类中包含另一个类的对象: 聚合实现 * 代理和被代理的对象会实现同一个接口 * TankTimerProxy的方法调用的是tank的方法,相当于TankTimerProxy是tank的代理 */
ChainOfResponsibility 实例: 过滤器
ChainOfResponsibility
观察者模式
上节课是spring的模拟程序,以下为spring用法:<bean id="key" class="value">BeanFactory bf = new ClassPathXmlApplicationContext("applicationContext.xml") ;Object obj = bf.getBean("key");模拟:jdom解析xml文件 jdom xpath编程指南文件路径this.getClass().getClassLoader().getResourceAsStream("XXX.xml");类.class.getClassLoader().getResourceAsStream("XXX.xml");
简单工厂:在产品的维度上进行扩展抽象工厂:在产品系列的维度上进行扩展,防止工厂泛滥,但不能产生新的产品品种(盔甲)Spring interface BeanFactory:Object getBean(String id){}properties 的=两边不要空格,也无;src --source--bin--classpathproperties.load(Test.class.getClassLoader().getResourceAsStream(path));String value = properties.getProperty(key);//将字符串所对应的类load到内存,然后newInstance产生对象Object obj = Class.forName(value).newInstance();
抽象工厂AbstractFactory: 工厂生产的产品的种类很多(系类产品)A:DefaultFactory create Car AK47 Apple B:MagicFactory create Broom MagicStick MushRoomAbstractFactory: create Vehicle Weapon Food(abstract )4个继承例子: 换皮肤
单例模式 & 静态工厂方法私有静态变量:private static Car car = new Car();私有构造函数private Car(){}公有静态对象生成方法public static Car getInstanse(){return car;}只要在他里面控制了产生对象的逻辑都是关于工厂相关的方法,产生产品(实例)多例模式 : 连接池简单工厂(工厂方法):任意定制交通工具的1.类型及2.生产过程(new)1.interface 中默认方法是public的 工具2.VehicleFactroy factory = new PlaneFactroy ();factory.create();VehicleFactroy 抽象类 其中包含抽象方法create();
抽象类:eg 交通工具接口:几类或一类事物的共同点,即事物特性 eg 会飞的
面向对象:1.先去找哪些类可以被包装起来(名词【名词也有可能是属性 eg:美国人 类:人 属性: 国籍】)2.属性不要脱离具体问题/环境3.方法 (其逻辑主语所在的类)4.类之间的关系(依赖、继承、聚合、组合……) 封装 继承 多态——————————————————开车【drive(Car c) drive(Car c, Address address)客户角度考虑需求,客户可以选择地点】隐藏(封装) 降低耦合度扩展性:添加比修改好 重载继承 父类的引用指向子类的对象(子类…是一种…父类)耦合度强,谨慎使用继承是为了多态多态:重点难点 -->可扩展性(Extensibility)抽象方法抽象类 继承抽象类 实现接口子类重写父类(此例抽象类)的方法1.继承 2.父类指向子类 3.重写
面向对象:1.先去找哪些类可以被包装起来(名词【名词也有可能是属性 eg:美国人 类:人 属性: 国籍】)2.属性不要脱离具体问题/环境3.方法 (其逻辑主语所在的类)4.类之间的关系(依赖、继承、聚合、组合……) 封装 继承 多态
敢用 勤用策略模式:
面向对象思维考虑类:名词属性:不可脱离具体的应用环境方法类之间的关系隐藏(封装)降低耦合度
抽丝剥茧策略模式c&c接口详细解析Comparable&Comparator多态很重要
动态代理初学习
责任链第3集http://v.youku.com/v_show/id_XMTMwMzg0MTMy.html
责任链2implements Filter