java编程思想
面向对象设计:谁拥有数据,谁就对外提供操作这些数据的方法
两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子
stone石头
knife刀
tree
wood木材
chair椅子
StoneKnife=KnifeFactory.createKnife(stone)
因为石头没有变成石刀的方法,所以这里是写一个石刀工厂,可以传人石头,返回石刀
wood=knife.cut(tree)
石刀可以有一个砍树的方法,直接将树砍成木材
chair=ChairFactory.makeChair(wood)
木材没有变成椅子的方法,所以写一个椅子工厂,可以传人木材,返回椅子
球从一根绳子的一端移动到另一端
绳子有两个属性,开始点,结尾点(要创建一个点类)
有一个得到下一个点的方法,返回的还是下一个点的坐标
球要和绳子有关系,所以在球类中定义一条绳子,并写一个构造函数将绳子传人进去
小球要有一个移动的方法,这个方法要从绳子那里获取到移动到下一个移动点的坐标
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)
{
...
}
}
class Ball{
private Rope rope;
private Point currentPoint;
public Ball(Rope rope,startPoint)
{
this.rope=rope;
this.currentPoint=startPoint;
}
public void move()
{
currentPoint=rope.nextPoint(currentPoint);
}
}