原型模式 电商 示例 java
时间: 2023-08-31 11:04:54 浏览: 52
原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而不是从头开始创建。在电子商务网站中,我们可以使用原型模式来复制商品对象,以便在不同页面或操作中使用相同的商品数据。下面是一个基于 Java 的电商示例。
首先,我们需要定义一个商品类,它包含商品的名称、价格和描述等信息。
```java
public class Item implements Cloneable {
private String name;
private double price;
private String description;
public Item(String name, double price, String description) {
this.name = name;
this.price = price;
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public Item clone() throws CloneNotSupportedException {
return (Item) super.clone();
}
}
```
接下来,我们创建一个商品管理器类,它包含了所有商品对象的原型。在这个示例中,我们使用 HashMap 来存储原型对象。
```java
import java.util.HashMap;
import java.util.Map;
public class ItemManager {
private Map<String, Item> items = new HashMap<>();
public void addItem(String key, Item item) {
items.put(key, item);
}
public Item getItem(String key) {
Item item = null;
try {
item = items.get(key).clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return item;
}
}
```
最后,我们可以使用商品管理器来复制商品对象。
```java
public class Client {
public static void main(String[] args) {
ItemManager manager = new ItemManager();
Item item1 = new Item("iPhone", 999.99, "The latest iPhone");
manager.addItem("phone", item1);
Item item2 = manager.getItem("phone");
System.out.println(item2.getName()); // 输出 "iPhone"
System.out.println(item2.getPrice()); // 输出 999.99
System.out.println(item2.getDescription()); // 输出 "The latest iPhone"
}
}
```
在上面的示例中,我们首先创建了一个商品对象,然后将其添加到商品管理器中。接下来,我们使用 getItem() 方法从管理器中获取该商品对象的克隆副本。最后,我们打印出克隆对象的属性。
通过使用原型模式,我们可以在不创建新对象的情况下复制现有对象。这样可以提高程序的性能和效率。