1.做类的设计时往往会希望每个类能与现实当中的实体/概念对应上;但如果从代码复用角度出发设计类,就可能会得到很多现实并不存在,但不得不存在的类。一般这种类都会有奇怪的名字和非常玄幻的意思。
2.
真正的敏捷是在保证测试案例通过的前提下,直接简单粗暴的修改源代码,而不是为了避免修改三行源代码制造出十多个类。
如果我们的开发基于「旧代码就是需要被经常修改的」,那么面向对象中的一部分特性其实变成了毫无意义的累赘。当然这并意味着 OOP 完全无用,在这个前提下,其实我们需要重新审视面向对象的程序设计,取其精华去其糟粕。
3
Java程序员对有main函数的class非常不满,觉得这侵犯了其他class的平等权,于是他们发明了JavaBean。从此以后他们再也不知道自己的程序究竟有多少个入口了。
4
Java程序员对没有implements的class感到恐惧,这代表它不能充分的实现多态性,调用这个类的代码不能正确调用其他有相同功能、相同接口的类。于是他给每个class创建了一个接口一模一样的interface。实际上这个interface从此以后再也没有其他class实现过。每次修改接口的时候,还要两个文件一起修改。
5
面向对象
1) 将 类 做为基本单位 而非方法
2)封装 继承 多态
感觉有两个好处
一个是易于表达事物间的关系 容易使用 设计模式
一个是对扩展开放 对修改封闭