标签:
1.面向对象设计把握一个重要的经验:
谁拥有数据,谁就对外提供操作这些数据的方法。
2.面向对象对象的提炼经验:
名词提炼法。
案例:
通过这一句话很容易想到这几个对象 person,blackboard,circle,接下来就是画圆draw()这个方法的描述应该设计在哪个类身上呢?
要想画出一个圆出来,我们得知道圆心和半径,而这两个数据是圆的,画圆这个方法要操作圆心和半径这两个数据,根据我一开始的准则,这个方法应该设计成是圆提供的。
public class Rope { private Point start; private Point end; public Rope(Point start, Point end) { this.start = start; this.end = end; } public Point nextPoint(Point currentPoint) { /* * 通过两点一线的数学公式可以计算出当前点的下一个点,这个细节不是设计阶段要考虑的事情 * 如果当前点事终止点,则返回null,如果当前点不是线上的点,则抛出异常。 */ return null; } } class Ball { private Rope rope; private Point currentPoint; public Ball(Rope rope, Point currentPoint) { this.rope = rope; this.currentPoint = currentPoint; } public void move() { currentPoint = rope.nextPoint(currentPoint); System.out.println("小球移动到了" + currentPoint); } }
领悟二:
有些项目假如我们没有经验的话根本是做不出来的,
根本不可能迅速想
到怎样实现,
得完全依赖于灵感。
有的项目就算你有经验也得依赖于灵
感才能做出来。但有一点毫无疑问,经验越多,积累越多,往往有效灵
感的产生也会越多越快。所以,不管怎样,我们都要注意经验的积累。
而积累经验的一个有效途径便是大量的阅读理解借鉴别人已做成的项
目,阅读别人的源代码,借鉴别人的优秀思想。
标签:
原文地址:http://www.cnblogs.com/zhangshiwen/p/4309184.html