????如果現(xiàn)有一個Iterable類,你想要添加一種或多種在foreach語句中使用這個類的方法,應(yīng)該怎么做呢属韧?例如吹散,假設(shè)你希望可以選擇以向前的方向或是向后的方向迭代一個單詞列表。如果直接繼承這個類告喊,并覆蓋iterator()方法,你只能替換現(xiàn)有的方法,而不能實現(xiàn)選擇狗准。
? ? 一種解決方法是所謂適配器方法的慣用法。在默認的前向的迭代器的基礎(chǔ)上勺届,添加產(chǎn)生反向迭代器的能力驶俊,我們不能使用覆蓋,而是應(yīng)該添加一個能夠產(chǎn)生Iterable對象的方法免姿,該對象可以用于foreach語句饼酿。
添加Iterable對象來為其添加一個iterator()方法
適配后執(zhí)行代碼
結(jié)果
????通過這種方式產(chǎn)生了不同的行為。