从卖煎饼果子看软件设计
一般的卖煎饼果子是一个人,先打鸡蛋,摊饼,最后放果子。但我见的这个是夫妻档,丈夫负责打鸡蛋、摊饼,妻子负责放果子。收钱的话,就自己放到钱箱里就可以了。这样一来,卖煎饼果子的效率就提高了很多。
让我们用软件的角度分析分析。这里的实体对象有丈夫、妻子、煎饼果子、钱箱和买早餐的人。丈夫要打鸡蛋、摊饼,那末就是I打鸡蛋和I摊饼两个接口,这两个接口也有角色的意思。
丈夫就实现了这两个接口。妻子负责放果子,那么一样的,有I放果子这个结构,由妻子来实现,然后继续,钱箱实现了I收钱的接口。买早餐的实现I找钱和I吃果子的接口。现在看来这一套东西在正常运行着。
有一天,为了让煎饼果子卖的更好。夫妻的儿子来帮忙收钱了。这个时候,我们就让儿子实现I收钱和I找钱的接口,取消钱箱的接口,取消买早餐的人的I找钱接口。这样,从外层看,所有的角色都没有变,都存在,依然正常运行,只是效率提高了。
综上看来,就像业务层没有改变,只是实现层做了调整,提高了系统的运行效率。如果像是以前一个人卖煎饼果子,那末这个人就把多个接口都实现了就OK了。
看来软件设计思想,面向对象设计,用在卖煎饼果子上也可以啊。