依赖于抽象而不依赖与实现

  • Post author:
  • Post category:其他



本人不懂C++,但面向对象的思想是一样的。




依赖于抽象而不依赖与实现,并不难理解。




比方说我们需要一个东西来盛水,这个东西只要有盛水的功能就行了,我们并不关心它是马克杯,乐扣杯,或者是解放牌大瓷缸,甚至是尿壶,这个能盛水的东西便是抽象(我们在脑海里只有一个概念,却没有实物),而马克杯或者其他的具体实物便是抽象的实现,面向抽象编程会非常灵活,并且低耦合,易于扩展和维护,还是那个比方,人是一个类,人有一个喝水的方法,想喝水就要依赖一个能盛水的容器,如果我要是依赖于具体编程,比如我今天想用乐扣杯盛水喝,明天想换个口味用尿壶,那么我就得每天都换一种(换一种实现就得修改一会类),非常麻烦,如果我依赖抽象(接口),我只是想喝水,只要这东西能盛水就行,我需要什么具体容器,就由它人来提供(工厂类提供一个具体实现的向上转型也就是抽象以便喝水的人可以用),来实现解耦