Java中封装共用的接口可以通过创建接口和实现类来实现。接口可以定义一组抽象方法,而实现类则实现这些接口中的方法。这样可以实现代码的重用和解耦,使得系统更加灵活和可扩展。
下面我们以一个简单的例子来说明如何封装共用的接口。
假设我们有一个电子商务系统,其中有一个购物车模块,我们想要封装一个通用的接口来实现购物车的功能。
首先,我们创建一个接口ShoppingCart
,并定义一组抽象方法,如下所示:
public interface ShoppingCart {
void addItem(Item item);
void removeItem(Item item);
float calculateTotal();
}
接口ShoppingCart
中定义了三个抽象方法:addItem
用于向购物车中添加商品,removeItem
用于从购物车中移除商品,calculateTotal
用于计算购物车中商品的总价。
接下来,我们创建一个实现类ShoppingCartImpl
来实现这个接口,如下所示:
public class ShoppingCartImpl implements ShoppingCart {
private List<Item> items;
public ShoppingCartImpl() {
items = new ArrayList<>();
}
@Override
public void addItem(Item item) {
items.add(item);
}
@Override
public void removeItem(Item item) {
items.remove(item);
}
@Override
public float calculateTotal() {
float total = 0;
for (Item item : items) {
total += item.getPrice();
}
return total;
}
}
实现类ShoppingCartImpl
中实现了接口ShoppingCart
中定义的三个方法。在实现类中,我们使用一个ArrayList
来存储购物车中的商品,然后根据具体需求实现接口中的方法。
接口和实现类定义完成后,我们可以在其他类中使用封装的购物车接口。下面是一个使用示例:
public class ShoppingCartClient {
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCartImpl();
Item item1 = new Item("iPhone", 999.99f);
Item item2 = new Item("iPad", 599.99f);
cart.addItem(item1);
cart.addItem(item2);
float total = cart.calculateTotal();
System.out.println("Total price: " + total);
}
}
在示例中,我们创建了一个购物车对象cart
,然后向购物车中添加了两个商品item1
和item2
,最后计算购物车中商品的总价并输出。
以上就是封装共用的接口的一个简单示例。通过创建接口和实现类,我们可以将通用的功能封装起来,以便在其他地方重复使用。接口和实现类的使用可以提高代码的可读性和可维护性,并且可以方便地进行功能扩展和修改。
接下来,我们使用序列图来描述接口和实现类之间的交互过程。
sequenceDiagram
participant Client
participant ShoppingCartImpl
Client->>ShoppingCartImpl: addItem(item1)
ShoppingCartImpl->>ShoppingCartImpl: add item to items list
Client->>ShoppingCartImpl: addItem(item2)
ShoppingCartImpl->>ShoppingCartImpl: add item to items list
Client->>ShoppingCartImpl: calculateTotal()
ShoppingCartImpl->>ShoppingCartImpl: iterate over items
ShoppingCartImpl->>ShoppingCartImpl: calculate total price
ShoppingCartImpl->>Client: return total price
Client->>Client: print total price
以上序列图展示了客户端和购物车实现类之间的交互过程。客户端通过调用购物车实现类的方法来完成购物车的功能,并最终获得购物车中商品的总价。
最后,我们使用类图来表示接口和实现类的关系。
classDiagram
interface ShoppingCart {
+addItem(item: Item): void
+removeItem(item: Item): void
+calculateTotal(): float
}
class ShoppingCartImpl {
-items: List<Item>
+ShoppingCartImpl()
+addItem(item: Item): void
+removeItem(item: Item): void
+calculateTotal(): float
}
class Item {
-name: String
-price: float
+Item(name: String, price: float