背景:
如果一个类(或者函数)需要依赖于另外一个类来实现某个功能时, 最直接也最原始的做法是, 在这个类中添加一个所依赖类的成员变量, 通过调用所依赖类的成员函数来实现那个功能。(或者 在实现功能的函数中 创建一个被依赖类的临时对象 如下面代码)。
class Car
{
public:
void run() {
cout<<"car is running"<<endl; };
};
class Deliveryman
{
public:
void deliver()
{
Car car;
car.run();
};
};
如代码所示,Deliveryman类 依赖于 Car类 来实现deliver功能。
问题:
耦合度高, 当这种依赖关系发生变化或者依赖选择增多时(如Deliveryman 不仅可以开车送包裹也可以骑电动车), 需要不停的修改Deliveryman 的代码, 导致系统稳定性降低。
class Ebike
{
public:
void run() {
cout<<"Ebike is running"<<endl; };
};