提供资料下载的网站如何建设,用jsp源码做网站,北京中高风险地区名单,聊城网站建设优化适配器设计模式是一种结构设计模式 #xff0c;可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码。 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比。 在设计面向对象的应用程序时#xff0c;当我们的客户希望使用特定类型的对象并且我们有一个… 适配器设计模式是一种结构设计模式 可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码。 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比。 在设计面向对象的应用程序时当我们的客户希望使用特定类型的对象并且我们有一个第三方API提供相同的功能但通过不兼容的接口时我们可能会感到需要适配器。 它也被称为包装器因为它通过一个新接口包装现有代码使其与客户端兼容。 术语 让我们知道在谈论适配器模式时使用的术语 客户端要使用第三方库或外部系统的类 Adaptee我们要使用的第三方库或外部系统中的类 目标接口客户端将使用的所需接口 适配器此类位于客户端和适配器之间并实现目标接口 使用适配器模式 假设我们有一个ShopInventory 其中维护着一个产品列表。 后来我们接管了另一家出售杂货的商店库存。 现在我们要将这些项目添加到ShopInventory中 。 我们这里存在的问题是尽管GroceryItem只是一种产品但与Product接口无关。 为了解决这个问题我们将使用适配器模式。 我们将创建一个GroceryItemAdapter 它将实现Product接口 借助适配器我们现在可以将GroceryItem视为产品而无需更改第三方代码 GroceryItem 中的任何内容。 Java实现 首先定义一个Product和一个ShopInventory类 public interface Product {String getName();double getPrice();
}public class ShopInventory {private ListProduct products;public ShopInventory() {this.products new ArrayList();}public void addProduct(Product product) {this.products.add(product);}public void removeProduct(Product product) {this.products.remove(product);}
} 我们刚刚接管的第三方商店拥有GroceryItem //third-party code
public class GroceryItem {String itemName;int costPerUnit;//constructor, getters and setters
} 由于我们的ShopInventory只保存Product类型的项目因此我们为新引入的GroceryItem创建一个适配器 public class GroceryItemAdapter implements Product {private GroceryItem groceryItem;public GroceryItemAdapter(GroceryItem groceryItem) {this.groceryItem groceryItem;}public String getName() {return groceryItem.getItemName();}public double getPrice() {return groceryItem.getCostPerUnit(); }
} 这样我们现在可以将我们的常规产品和杂货添加到我们的ShopInventory中 //code in our main method
ShopInventory inventory new ShopInventory();//adding regular store products - ones that implement Product interface
inventory.addProduct(new CosmeticProduct(Lavie Handbag, 5000.0));
inventory.addProduct(new FitnessProduct(Yoga SmartFit, 2000.75));//adding GroceryItem to the store using an adapter
GroceryItem groceryItem new GroceryItem(Wheat Flour, 100);
inventory.addProduct(new GroceryItemAdapter(groceryItem));结论 适配器模式可帮助我们连接两个不兼容的接口以显示相同的业务功能。 使用适配器模式我们将现有接口转换为客户端代码期望的另一个接口。 翻译自: https://www.javacodegeeks.com/2019/08/adapter-design-pattern-in-java.html