摘要: 虽然一直的以为自己掌握了面向对象的编程,但是在实际的开发过程中对需求的变化感到力不从心,才认识到自己的oop基础并不牢固。痛定思痛,决定找一本设计模式的书好好的打打基础,也期望能够解决工作中的一些疑惑。1.UML图 类图几个的原语: 继承(Generalization):实现(Realiza... 阅读全文
posted @ 2014-05-10 23:12 梅子毅 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 控制反转的清楚解释:http://zh.wikipedia.org/wiki/%E6%8E%A7%E5%88%B6%E5%8F%8D%E8%BD%AC(不得不鄙视一下百度百科)虽然wiki上已经讲得很清楚了,但是把自己理解的付诸于纸上,这才是自己的。控制依赖:class A , class B 若(1)A调用了B中的方法(2)A是B的子类(3)A依赖于C,而C又依赖于B,符合以上三个条件,则说明A依赖于B。循环依赖:A依赖于B,B又依赖于A,造成循环依赖。 循环依赖说明A,B不能单独运行。消除依赖:若A调用B中的某个方法,可以这样做:将A调用B中的所有方法的声明放在一个接口I中,B实现接口.. 阅读全文
posted @ 2012-11-05 15:11 梅子毅 阅读(1631) 评论(2) 推荐(0) 编辑
摘要: 1.RTTI(对象运行时类型标识)RTTI可以知道不确定对象的类型,但是该类型必须在编译时已经知道,这样才能识别。 1 public class RTTITest { 2 public static void main(String []args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{ 3 Animal animal=new Pig(); 4 animal.feature(); 5 Object pig=null; 6 ... 阅读全文
posted @ 2012-10-30 21:57 梅子毅 阅读(766) 评论(0) 推荐(0) 编辑
摘要: 1.class Foo { private Helper helper = null; public synchronized Helper getHelper() { if (helper == null) helper = new Helper(); return helper; } // other functions and members... }上面代码当helper实例化后仍然会加锁,效率低。未完。。。。 阅读全文
posted @ 2012-10-30 11:12 梅子毅 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1.单例模式作用:简化复杂环境下的配置管理 多线程中小心使用:可能会造成创建两个对象。(可以加互斥锁解决)2.懒汉模式第一次被引用时才将自己实例化,称为懒汉模式(1)普通单例模式:public Singleton{ private static Singleton instance=null; /**封堵外界调用**/ private Singleton(){ } public static Singleton getInstance (){ if(instance==null){ instance=... 阅读全文
posted @ 2012-10-30 10:35 梅子毅 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 1.超类object中定义的equals方法与运算符“==”的作用相同,都是判断两个对象所引用的内存地址是否相同。源码:java.lang.Object1 public boolean equals(Object obj) {2 return (this == obj);3 }2.String类重写了Object累的equals方法源码:java.lang.String public boolean equals(Object anObject) { if (this == anObject) { return true; } ... 阅读全文
posted @ 2012-10-30 09:39 梅子毅 阅读(216) 评论(0) 推荐(0) 编辑