Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198707
  • 博文数量: 66
  • 博客积分: 966
  • 博客等级: 准尉
  • 技术积分: 550
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-11 11:52
文章分类

全部博文(66)

文章存档

2012年(60)

2011年(6)

分类: Java

2012-10-17 10:56:48

面向对象设计把握一个重要经验:谁拥有数据,谁就对外提供操作这些数据的方法
 
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
 
     
 
阅读(2621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~