四、面向对象 对象扩展与成长

 

 


 前面的继承是类的扩展方式,类在java中是类对象,这里我们最好就把类叫做对象的定义,或者是说描述
这篇文章说的扩展,不是类的扩展,而是对象的扩展。对象是计算环境的搭建者和参与者,对象适应环境变化的能力表现在对象的扩展性和成长性上。

一、让对象依赖于抽象
话说,DOTA中的剑圣1万年前是个书生,不会武功,剑圣的众多绝招都是后来学的。

//人 类
class ren {
      List<wugong>  wugongliebiao ;//武功列表
      List<wenzi>   wenziliebiao;//认识的文字列
      public boolean xuexiWugong(wugong w){   //学习武功
               wugongliebiao.add(w)
      }
     public boolean xuexiWenzi(wenzi w){   //学习文字
               wugongliebiao.add(w)
      }
}
无敌斩

class wudizhan implements wugong{

}

 

剑刃风暴

class jianrenfengbao implements wugong{

}

 

ren  js = new ren();//剑圣出生,什么都不会

js.xuexiWugong(new wudizhan));  //学无敌斩 

js.xuexiWugong(new jianrenfengbao);//学剑刃风暴

 

一个人,在一个环境中总是依靠环境中其他的事物成长,这种有助于成长的扩展性,我们用依赖于抽象进行。好比,只要是武功,剑圣就能学

 

二、多多考虑组合,对象的属性都是抽象

剑圣出生是没有穿衣服的,在他活着的1万年间,他穿过很多的衣服,衣服能增加他的防御力

class ren(){
      ...

      Yifu  yifu;
      setYifu(Yifu f){
              this.yifu = f;
      }
      public Integer getFangyuli(){
            return yifu.fangyuli
      } 
}

Interface  Yifu {
      public Integer getFangyuli();
}

class  longmenkaijia implements Yifu{  //龙门铠甲
         private fangyuli = 10000;
         public Integer getFangyuli(){
            return fangyuli  ;
      }
}
ren  js = new ren();
js.setYifu(new longmenkaijia());

君子擅甲于物也!


三、能扩展自己的同时,也要识抬举,懂得被别人欣赏和包装

剑圣到现在还不是英雄,暴雪要给他加上英雄的光环,剑圣喜坏了

class yingxiong extends ren{
       Guanghuan  gh;  //光环
       ren     r;
       public yingxiong(ren r){
            this.ren = r;
            gh = new Guanghuan_x();
       }
}
js = new  yingxiong(js) ;js成了英雄,有了x光环。


 地球上的物质和联系组成了完整的地球生态,人和人之间的联系组成了社会形态,相对来说社会形态比计算环境更为复杂,我们系统中的对象也没有人这么灵活,如何让对象更具鲜活性,让我们的计算环境具备文化风景,是我们程序员永久的主题,也是源于生活的智慧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值