摘要: 1、当涉及维护时为了复用而使用继承,结局并不完美设计原则1:把会变化的取出并封装起来,好让其他部分不会受到影响(即不要和那些不需要变化的部分分离开来)设计原则2:针对接口编程而不是针对实现编程 现在利用接口代表每个行为,而行为的每个实现都必须实现这些接口之一;这些接口的实现由专门的类实现,称之为行为类。由行为类实现行为接口,而不是由Duck类实现行为接口。以往的做法是:行为是继承超类的具体实现而来,或是继承某个接口并由子类自行实现而来,这两种做法都是依赖于实现,导致被实现绑的死死的,没法更改行为。归结为一句话就是:父类引用指向子类对象,即针对超类型编程Animal animal = ... 阅读全文
posted @ 2014-02-14 19:52 CoolRandy 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串2. 链表3. 树4. 图5. 排序6. 递归 vs. 迭代7. 动态规划8. 位操作9. 概率问题10. 排列组合1. 字符串如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法。123456toCharArray() // 获得字符串对应的char数组Arrays.sort() // 数组排序Arrays.toString(char[] a) // 数组转成字符串charA 阅读全文
posted @ 2014-02-14 15:15 CoolRandy 阅读(282) 评论(0) 推荐(0) 编辑