看板java
标 题Re: [问题] 请问interface到底是做什麽用的?
发信站KKCITY (Fri Apr 14 19:21:36 2006)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!bbs.ee.ntu!news.kkcity.com.
※ 引述《[email protected] (godfat 真常)》之铭言:
> ※ 引述《sandwichC ( )》之铭言:
> : 一种可能的解法如下 (如有更好的解法 还请赐教)
> : interface IGoodAtSports{...}
> : interface IGoodAtSinging{...}
> : class father implements IGoodAtSports{...}
> : class mother implements IGoodAtSinging{...}
> : class child implements IGoodAtSports, IGoodAtSinging{...}
> : 但若想让father中sports的行为与child中sports的行为一模一样 及
> : 让mother中singing的行为与child中singing的行为一模一样
> : 除了复制一次 还有什麽解法吗?
> : 我很久以前在java还programming版问过
> : 但最後似乎就无疾而终了…
> : 若有人想到好解法还请不吝赐教
> 这样如何?
> interface IGoodAtSinging{
> public void sing();
> }
> class ImplementOfSinging implements IGoodAtSinging{
> public void sing(){ out.prinln("I am singing"); }
> }
> class Father implements IGoodAtSinging{
> private ImplementOfSinging imp_sing_ = new ImplementOfSinging();
> public void sing(){ imp_sing_.sing(); }
> }
> class Child implements IGoodAtSinging{
> private ImplementOfSinging imp_sing_ = new ImplementOfSinging();
> public void sing(){ imp_sing_.sing(); }
> }
这好像就是Strategy pattern
如果上上上楼说的复制一份是指程式码复制一份, 那这方法的确是可以不用复制程式码
(把Father的sing行为包装成一个物件...Mother的sport包成一个物件
儿子直接拿来用就可..)
--
┌─────◆KKCITY◆─────┐KKMAN团队 全新力作 ◎◎KKBOX◎◎
│ bbs.kkcity.com.tw │知名歌手通通都有 所有新歌想听就听
└──《From:140.109.18.149
》──┘※※ 内容丰富多元的线上音乐台 ※※
--