实际上我曾弄清楚过这个问题,可能还不止一次,但总是会忘掉。
就像我时不时的会看看bash命令,正则表达式,但时间长不用,就都忘掉了,尤其是处在高压的工作环境下,人很快就会忘记不常使用的技能和知识。现在我再弄懂他一次,当然只是在现在的认识水平之下,然后把它记录下来,希望能真正掌握这一思想。
面向接口编程的意思,简单说就是做设计,写代码,都是操作接口的,比如声明了一个接口,声明了几个实现这个接口的类实例,然后“在程序中使用的都是接口,调用接口的方法”, 这句话的意思是,主要的业务逻辑代码操作的是接口,而不会指定它是某种具体的类,当然,你必须构造一个实例类来使得代码合法,但程序的过程只是操作接口。(可以声明接口但用实现接口的类实例赋值就是为这个而设计的)
这样一来,可以说是一定程度上解耦了过程和过程中用到的类 之间的关系,只要接口设计的合适,就可以方便的把操作对象换成另一种类对像,只要他实现了这个接口。这对重构代码来说是非常方便的,而且使结构更清晰。设计好的接口,可以使所操作业务的本质也会显得十分直白。
但具设计这种接口的能力,得很有经验,很了解业务本身才行,需要不断的反复修改尝试才行,至少对我来说是。
程序员成千上万,可能干的工作各式各样,这些经典的理论,成熟的经验,却不是每个人都有机会能亲身实践体会的,只有从书里读来。作为一个追求上进的技术人员,有时也不能光埋头苦干,要给自己寻找创造更好更高效的成长机会。