低内聚 高耦合 代码示例
时间: 2024-02-10 22:43:12 浏览: 40
低内聚、高耦合的代码示例:
```java
public class ShoppingCart {
private List<Item> items;
private float totalPrice;
public void addItem(Item item) {
// add item to cart
}
public void removeItem(Item item) {
// remove item from cart
}
public void calculateTotalPrice() {
// calculate total price of items in cart
}
public void checkout() {
// process checkout
}
public void printReceipt() {
// print receipt
}
}
```
在上面的代码示例中,`ShoppingCart` 类承担了太多的职责,包括添加、删除、计算总价、结账和打印收据等。这导致该类的内聚性较低,不同的职责被混合在一起,难以维护和测试。
此外,该类还与其他类高度耦合,例如 `Item` 类和 `ReceiptPrinter` 类,这意味着如果这些类发生改变,`ShoppingCart` 类也必须发生变化,这使得代码难以扩展和重用。
相关问题
java高内聚低耦合示例
Java高内聚低耦合是一种软件设计原则,它意味着在一个系统或模块中,各个组件之间相互依赖度低,独立性高,可以方便地修改、扩展和重用。下面以一个订单系统为例,说明Java高内聚低耦合的示例。
假设我们有一个订单系统,它包括订单管理、商品管理和用户管理三个模块。高内聚低耦合的设计将按照功能将不同的模块拆分成各个独立的类,每个类只负责自己的职责。比如,订单管理模块的类包括Order、OrderItem和OrderService,商品管理模块的类包括Product和ProductService,用户管理模块的类包括User和UserService。
在这个设计中,各个模块之间尽量减少依赖关系,只通过接口或提供的公共方法进行通信,类之间的调用关系简单清晰。比如,订单管理模块中的OrderService类只依赖于商品管理模块的ProductService接口和用户管理模块的UserService接口,而不依赖具体的实现类。这样,当需要修改或扩展商品管理或用户管理模块时,订单模块不会受到影响,只需要修改相应的接口和实现类即可。
另外,高内聚低耦合的设计也能够提高代码的重用性。比如,商品管理和用户管理模块的一些公共方法可以抽象成一个BaseService类,让需要使用这些方法的模块进行继承。这样,不同的模块可以复用相同的代码,避免了重复编写类似的功能。
综上所述,Java高内聚低耦合示例通过模块的拆分和减少依赖关系,实现了系统的灵活性和扩展性,提高了代码的重用性。
高内聚 低耦合代码演示
高内聚是指一个模块内的各个成员之间联系紧密,功能高度集中。低耦合是指各个模块之间的关联度低,一个模块的变化不会影响其他模块的正常运行。下面是一个简单的代码演示:
高内聚示例:
```python
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def get_make(self):
return self.make
def get_model(self):
return self.model
def get_year(self):
return self.year
def start_engine(self):
print("Engine started")
def stop_engine(self):
print("Engine stopped")
```
在这个示例中,`Car` 类具有高内聚性,因为它的所有方法都与汽车相关。它包含了汽车的制造商、型号和年份等属性,以及启动和停止引擎的方法。
低耦合示例:
```python
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.engine = Engine()
def get_make(self):
return self.make
def get_model(self):
return self.model
def get_year(self):
return self.year
def start_engine(self):
self.engine.start()
def stop_engine(self):
self.engine.stop()
class Engine:
def start(self):
print("Engine started")
def stop(self):
print("Engine stopped")
```
在这个示例中,`Car` 类和 `Engine` 类之间具有低耦合性。`Car` 类包含了一个 `Engine` 实例,但它并不需要知道 `Engine` 类的实现细节,只需要调用 `start()` 和 `stop()` 方法即可。如果 `Engine` 类的实现发生改变,`Car` 类的代码不会受到影响。