映射器是适配器模式的一个版本

2024-01-12

我一直在尝试了解适配器模式,在所有模式中,我最难想象它的用途。

我想我明白所实现的目标,对我来说,它将一个对象转换为另一个接口,以便客户端可以使用它。

在我看到的示例中,它们是有道理的,但我觉得我可以使用映射器来实现相同的目的,该映射器接受一个对象并将其属性(也可能应用一些逻辑)映射到所需的对象类型,以便使用真实的对象。

有区别还是同一事物的不同名称?


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

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'

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

映射器是适配器模式的一个版本 的相关文章

随机推荐