本文介紹了映射器是適配器模式的一個(gè)版本嗎的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我一直在試圖弄清楚適配器模式,在所有模式中,我最難想象它的用途。
我想我明白實(shí)現(xiàn)了什么,對(duì)我來(lái)說(shuō)就是將一個(gè)對(duì)象轉(zhuǎn)換為另一個(gè)接口,以便客戶端可以使用它。
在我看到的示例中,它們是有意義的,但我覺(jué)得我可以使用一個(gè)映射器來(lái)實(shí)現(xiàn)同樣的目的,該映射器獲取一個(gè)對(duì)象,并將其屬性(可能還應(yīng)用了一些邏輯)映射到所需的對(duì)象類型,以便改用實(shí)際對(duì)象。
是不同還是同一事物的名稱不同?
推薦答案
不要將適配器視為新對(duì)象的創(chuàng)建者(如映射器),而應(yīng)將其視為接口轉(zhuǎn)換器。
Mapper m = new Mapper()
Dog dog = (Dog) m.mapRow(resultSet); // creating new object
CAT實(shí)例仍存在于此處,未創(chuàng)建新的”Dog實(shí)例”,而是創(chuàng)建了DogAdapter實(shí)例,并使CAT對(duì)象”適應(yīng)”Dog接口。
Cat cat = new Cat("Felix");
Dog dog = new DogAdapter(cat); // cat still exists
dog.bark(); // yields 'meow'
這些顯然是人為的例子,但希望它們能幫助您更好地理解。
這篇關(guān)于映射器是適配器模式的一個(gè)版本嗎的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,