映射器是适配器模式的一个版本吗 [英] Is a mapper a version of the adapter pattern

查看:29
本文介绍了映射器是适配器模式的一个版本吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图弄清楚适配器模式,在所有模式中,我最难想象它的用途。

我想我明白实现了什么,对我来说就是将一个对象转换为另一个接口,以便客户端可以使用它。

在我看到的示例中,它们是有意义的,但我觉得我可以使用一个映射器来实现同样的目的,该映射器获取一个对象,并将其属性(可能还应用了一些逻辑)映射到所需的对象类型,以便改用实际对象。

是不同还是同一事物的名称不同?

推荐答案

不要将适配器视为新对象的创建者(如映射器),而应将其视为接口转换器。

Mapper m = new Mapper()
Dog dog = (Dog) m.mapRow(resultSet); // creating new object

CAT实例仍存在于此处,未创建新的"Dog实例",而是创建了DogAdapter实例,并使CAT对象"适应"Dog接口。

Cat cat = new Cat("Felix");
Dog dog = new DogAdapter(cat); // cat  still exists
dog.bark(); // yields 'meow'

这些显然是人为的例子,但希望它们能帮助您更好地理解。

这篇关于映射器是适配器模式的一个版本吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆