高內聚低耦合
?內聚指的是:?個模塊中各個元素之間的聯系的緊密程度,如果各個元素(語句、程序段)之間的聯系程度越?,則內聚性越?,即 “?內聚”。
低耦合指的是:軟件中各個層、模塊之間的依賴關聯程序越低越好。修改?處代碼, 其他模塊的代碼改動越少越好.
高內聚低耦合是軟件設計的重要原則,它可以提高代碼的可維護性和可擴展性。下面我將分別展示一個高內聚低耦合的Java代碼示例。
高內聚示例:
public class ShoppingCart {private List<Item> items;public void addItem(Item item) {// 添加商品到購物車}public void removeItem(Item item) {// 從購物車中移除商品}public double calculateTotal() {// 計算購物車中商品的總價}
}public class Item {private String name;private double price;// 省略構造函數和其他方法
}
在這個示例中,ShoppingCart 類負責管理購物車中的商品,它包含了添加商品、移除商品和計算總價的方法。Item 類表示購物車中的商品,它只包含商品的名稱和價格信息。這樣設計使得每個類都有清晰的職責,實現了高內聚。
低耦合示例:
public interface PaymentMethod {void pay(double amount);
}public class CreditCardPayment implements PaymentMethod {public void pay(double amount) {// 使用信用卡支付}
}public class CashPayment implements PaymentMethod {public void pay(double amount) {// 使用現金支付}
}public class Order {private PaymentMethod paymentMethod;public void setPaymentMethod(PaymentMethod paymentMethod) {this.paymentMethod = paymentMethod;}public void processPayment(double amount) {paymentMethod.pay(amount);}
}
在這個示例中,PaymentMethod 是一個接口,定義了支付的方法。CreditCardPayment 和 CashPayment 分別實現了 PaymentMethod 接口,分別表示信用卡支付和現金支付。Order 類包含了一個 PaymentMethod 對象,并且通過 setPaymentMethod 方法來設置支付方式,然后通過 processPayment 方法來進行支付。這樣設計使得 Order 類與具體的支付方式解耦,實現了低耦合。
這兩個示例展示了如何在Java中實現高內聚低耦合的代碼設計。希望對你有所幫助!