2010-4-6

  抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。这个总结牛的!~一种不同侧面的认识吧!刚看到的!赞!如果要复用代码,那么抽象类–子类直接得到方法,省事!如果要用多态,当然接口是不二之选!
  重点是面向接口编程!用一个
FlashDisk、MP3Player、MobileHardDisk和computer的例子!如果直接实现,那么前三者都分别要有读写方法,然后computer里面单独创建实例来调用。这样最不好的就是维护性差,每增加一个device都要改computer的代码。
  更好的方法:前三者实现portable接口,接口中有read和write方法!这样,computer使用这三个类的时候,传进去的是portable(多态)!扩展性强了!如果此时有另外一个device实现了portable,那computer的代码一点都不用改,直接用!
  如果此时有一个device没有实现portable,它的读写方法名是rd和wt,那computer咋办呢,不认识。。。傻了?这时adapter闪亮登场。创一个thisDeviceAdapter类,实现portable接口,private一个这个device实例,把read和write分别用rd和wt adapt一下,Hoho!perfect!
  在学习面向接口的时候,还顺便看了一个observer的例子!dog,thief和master。dog叫的时候,thief要逃跑,master要醒过来!如果单独实现,那就是dog的bark()方法里分别调用thief和master的response。如果新增要通知的对象,就要去改变代码,可怕!
  observor模式威力开始显现—两个接口:observor(用来定义被通知对象,有response方法)和subject(发出消息对象,有addObservor方法)。显然,dog实现subject接口,并且在bark()方法中对所有属于它的Observor调用response方法。 thief和master嘛,实现Observor接口,分别定义自己的response方法,最重要的–在constructor中传入subject对象,也就是dog,以便将自己加入到那个通知列表当中! 这样的好处太多了,最重要就是扩展方便,有新的对象需要通知时,只要实现Observor接口并且获得需要的subject对象。多态的又一个经典应用!长见识了!
  设计模式—接着啃! coder到designer—-哈哈,路漫漫呀。。。
  接到她电话,挺意外,也挺乱挺矛盾的,确实不知道信心哪里去了……不知道怎么办,边走边看吧。。。
  database的是个query,轻松搞定~~不过想到622 project就没底,赶紧学design pattern,用起来!!!
  今天看了看monster里根据我简历推荐的工作,年薪80k-110k!看来方向还是正确的,把SSH框架学好,design pattern作为基础,那些什么tomcat,jboss,maven应该是小菜了,嗯!朝着目标,keep going!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s