bokix
2013-12-01 22:05:45 +08:00
你现在住在一个最新式的高科技别墅里,所有一切都是自动化的,你的床头有一个按钮,按一下可以直接生产一杯拿铁咖啡,你只需要按一下按钮即可,别的什么都不需要做,不需要你选择水温,不需要你选择咖啡豆,不需要你指挥着去磨咖啡豆,仅仅按一下按钮即可。
有一天你不想喝拿铁了,你想喝卡布奇诺,你不需要把你的墙挖开重新换一个按钮,你只需要打电话告诉咖啡供应商,把我的拿铁“实现”换成卡布奇诺的”实现”,然后你还是按下原来的按钮,出来的就是卡布奇诺了,或者你可以两种都保留,周1到周5是拿铁,周末是卡布奇诺,你可以告诉咖啡商,把你的咖啡实现以工厂模式管理:周1到周5是拿铁,周末是卡布奇诺,这样,你墙上的按钮还是原来那个,你还是不需要管咖啡豆、磨咖啡、冲泡等一些列流程,还是仅仅按下按钮,就能平时拿铁周末卡布奇诺了。
这里的按钮就是接口,按钮背后,从咖啡豆-研磨-冲泡-到一杯成品咖啡出现在你面前,就是这个接口的具体实现,面向接口编程对你来说就是意味着你不需要在你想换咖啡口味的时候把你的墙敲开重新更换按钮,你也不需要关心按钮背后具体做了什么,你只关心最后呈现在你面前的咖啡,然后尽情的享用,enjoy your life!