面向对象设计把握一个重要经验:谁拥有数据,谁就对外提供操作这些数据的方法
1.人在黑板上画圆
分析: person blackboard circle (人,黑板,圆)
draw(){
(x,y)-->radius //圆心,半径 是圆的属性由圆提供,所以 draw 方法有圆提供
}
2.司机刹车
3.把们关上
4.售票员统计票据金额
5.小球从绳子一端移动到另一端
分析: 小球 绳子
绳子给小球提供移动的方向,有个开始,结束属性,小球有个滚动的方法。至于往哪个方向滚动需要问绳子
//绳子
Class Rope{
privae Point start;
private Point end;
public Rope(Point start, Point end){
this.start=start;
this.end =end;
}
public Point nextPoint(Point currentPoint)
{
/*
通过2点一线数据公式可以计算当前点的下一个点,当前点是终止点 侧返回空,
如果当前点不是在线上的点,侧抛出异常*/
}
class Ball{
private Rope rope;
private Point currentPoint;
public Ball(Rope rope,Point currentPoint){
this rope = rope;
this currentPoint =currentPoint
}
pulic void move(){
currentPoint = rope.nextPoint(currentPoint);
System.out.println("xiao qiu yi dong:"+currentPoint );
}
}
}
6. 俩块石头磨成一把石头刀,石头刀可以砍成树,砍成木材,木材做成椅子;
分析: stone KnifeFactory StoneKniffe tree material chair
石头 刀 石刀 树 木材 椅子
StoneKniffe = KnifeFactory .createKnife(stone)
mateial = StoneKniffe.cut(tree)
Chair = ChairFactory.makeChair(meterial);
material
chair
阅读(2693) | 评论(0) | 转发(0) |