谈谈编程思想的发展?

就好比战争史的发展:

1.原始社会,每个部落的士兵在打仗之前都得自己造兵器,所以想发动一场战争,需要准备很长的时间,而且各个士兵制造的兵器杀伤力大小不一,所以对己方的战斗力影响很大。

这就好比最早的编程时期,程序员要实现一个功能点,那么他就必须去实现自己精通或者不精通的领域,所以这也就对开发的进度和效率有很大影响。

2.奴隶社会,奴隶主们意思到原始社会这种战争方式不利于迅速发动战争,于是就发明了工匠的职业——为士兵制造武器,但是这时候的工匠只服务于一个士兵,一个士兵也只能使用一个工匠制造的武器,无论这个士兵是多么的优秀。劣势自然就出来了,优秀的士兵发展受到很大制约,因为他只能和一个工匠发生关系,如果他想换工匠,那么就得经过政府层层审批,相当麻烦。

相对于编程,就是已经开始走向模块化了(一个类只专注于一件事),代码也不再冗长了,而是由不同领域的高手来实现自己的领域功能,并供其他领域专家来调用。但是模块间耦合度仍然很高,某块之间具体依赖仍然很强。

3.封建社会,封建主开始有了新的思想,那就是把所有的工匠召集到一块,然后按照他们的能力和特长,将他们分配到各个作坊,这样士兵就不需要强制的必须和用某个工匠生产的东西了,他们可以自由的挑选自己满意的工匠,这样就能每个人的能力得到了测地的发挥。但是,这仍然有一个问题,那就是每个士兵仍然要和工匠发生关系,虽然已经可以随便的选择工匠了。这导致一个问题就是士兵还是得去关心他的武器制造过程,这仍然会让士兵分心。

这时候的软件工程其实已经出现接口概念,调用模块可以自由的选择需要调用的模块,只要这些被选择的模块实现同一个接口就可以了。但是被调用者仍然存在于调用者之内,耦合性仍然存在

4.资本主义 ,资本家成立了工厂,在确定了士兵的需求后统一的去让工厂实现士兵需要的武器,然后再将武器发放到士兵的手。

在编程中,这也就是IOC了,亦利用一个工厂类(容器)来生成具体的被调用模块,然后将被调用模块作为参数传递给调用者,调用者只需按照接口调用就行了。这样就实现了调用者和被调用者之间的解耦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值