前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程思想与生活经验

编程思想与生活经验

作者头像
wfaceboss
发布2019-04-08 10:55:44
3210
发布2019-04-08 10:55:44
举报
文章被收录于专栏:wfacebosswfaceboss

1,内聚

程序=数据+操作

       =数据结构+算法(PASCAL之父Nicklaus Wirth)

       =对象+消息

对象是什么?

对象就是保管好自己的东西,做好自己的事情的程序模块--------这就是内聚

2,依赖

一个对象往往需要跟其他对象打交道,既包括获取依赖于另一对象,也包括仰赖其他对象的行为,一旦发生便称为该对象依赖另一对象。只要有一个依赖另一个的现象发生,则这两者之间存在耦合,比如妈妈和婴儿。

3,耦合

耦合的程度就是耦合度,也就是双方依赖的程度,妈妈和婴儿之间是强耦合,而我们与快递小哥之间为弱耦合。

4,依赖倒置

高层模块不应该依赖底层模块,都依赖与抽象。抽象不应该依赖于细节,细节应该依赖抽象。

举一个例子:

假设你要买一个IPhone,卖IPhone的老板让你拿一头猪跟他换,可是你并没有养猪,你只会编程。所以你找到一位养猪户,说给他做一个养猪的APP来换他一头猪,他说换猪可以,但是得用一条金项链来换——所以这里就出现了一连串的对象依赖,从而造成了严重的耦合灾难。解决这个问题的最好的办法就是,买卖双发都依赖于抽象——也就是货币——来进行交换,这样一来耦合度就大为降低了。

5,控制反转

首先我们要区分两个角色,server 跟 Client,也就是服务方和客户方。提供服务端的一方称为服务方,请求服务的一方称为客户方。

当我们使用开发框架时,开发框架就是作为服务方,而我们自己编写的业务应用就是客户方。当Client调用server时,这个叫做一般的控制;而当server调用Client时,就是我们所说的控制反转,同时我们也将这个调用称为“回调”。控制反转跟依赖倒置都是一种编程思想,依赖倒置着眼于调用的形式,而控制反转则着眼于程序流程的控制权。一般来说,程序的控制权属于server,而一旦控制权交到Client,就叫控制反转。比如你去下馆子,你是Client餐馆是server。你点菜,餐馆负责做菜,程序流程的控制权属于server;而如果你去自助餐厅,程序流程的控制权就转到Client了,也就是控制反转。

总结出开发框架与类库的区别:使用开发框架时,框架掌握程序流程的控制权,而使用类库时,则是应用程序掌握程序流程的控制权。或者说,使用框架时,程序的主循环位于框架中,而使用类库时,程序的主循环位于应用程序之中。框架会回调应用程序,而类库则不会回调应用程序。

6,依赖注入

A对象依赖于B对象,等价于A对象内部存在对B对象的“调用”,而前提是A对象内部拿到了B对象的引用。B对象的引用的来源无非有以下几种:A对象内部创建(无论是作为字段还是作为临时变量)、构造器注入、属性注入、方法注入。后面三种方式统称为“依赖注入”。

作者:在好 链接:编程思想里面,何谓解耦? - 在好的回答 来源:知乎

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档