第二章 使用接口(Using Interfaces)-书籍翻译

简介: PDF预览 下载地址  http://files.cnblogs.com/DKSoft/CodingInDelphi.pdf     1.1. 解耦(Decoupling) All through this book, I’ll talk a lot about decoupling your code and why that is really good. But a definition here is probably a good idea. 贯穿本书,我将讨论了许多有关解耦代码和这样做会带有什么样的好处的话题。

PDF预览

下载地址 

http://files.cnblogs.com/DKSoft/CodingInDelphi.pdf

 

image

 

1.1. 解耦(Decoupling)

All through this book, I’ll talk a lot about decoupling your code and why that is really good. But a definition here is probably a good idea.

贯穿本书,我将讨论了许多有关解耦代码和这样做会带有什么样的好处的话题。不过在这里定义也许是一个好主意。

Code can be said to be decoupled when your classes are designed in such away that they don’t depend on the concrete implementations of other classes. Two classes are loosely coupled when they know as little about each other as possible, the dependencies between them are as thin as possible, and the communication lines between them are as simple as possible.

当你的类如果是这样设计的: 它们不依赖于其他类的具体实现, 这样的代码可以说是松散耦合的. 两个类当相互之间了解的尽可能的少, 相互依赖尽可能的弱, 彼此之间通讯尽可能的简单, 这样的两个类是松散耦合的.

In other words, decoupling is the process of limiting your dependencies to abstractions as much as possible. If you want to write good, clean code, you will try to couple only to abstractions; interfaces are abstractions. Much of what will be discussed in this book will be about using interfaces to code against abstractions. As I tweeted above, this is critical to writing good code that is easy to maintain.

换句话说, 解耦就是限制你尽可能多的依赖抽象的过程, 如果你想写出漂亮干净的代码, 你该试试只耦合抽象, 接口就是抽象的, 这本书里很多将要讨论的就是使用接口写出针对抽象的代码, 如我在上面推特里写到的, 这是写出容易维护的好代码的关键.

In Delphi, decoupling starts by limiting what goes into the uses clause of any given unit. Every time you use code from another unit, you are creating a connection or a coupling of code. You should try as much as possible to expose units that declare only Delphi interfaces to other units. You should endeavor to put as little as possible in the interface section of your units. This will allow you to limit the coupling of your code – if you don’t put it in the interface section, it can’t be coupled to.

Delphi中,解耦从限制任何进入uses的单元开始. 每当你使用另外一个单元的代码时,你是在创建一个关联或者说是耦合代码,你应该尽可能的尝试去暴露那些只申明了接口的单元给其他单元。你应该努力做到尽可能少放代码在你单元的interface部分. 这将限制你代码的耦合 - 如果你不不放在interface节中,那它不会被耦合.

Once you have limited the connections between your units, you can then start limiting the connections between your classes. Classes have to connect to each other somehow – otherwise you can’t build a system. But if you are going to connect things together, you want those connections to be as thin as possible. That’s where interfaces come in.

一旦你已经限制了单元之间关联, 你就可以限制类之间的关联. 类不得不以某种方法连接在一起, 否则你就不能构建出一个系统, 但是如果你将要把一些东西关联在一起, 你就要让这些关联尽可能的弱, 那就是接口的用武之地.

Of course to program against an interface, you have to first know what an interface is.

当然针对接口编程,你首先必须知道什么是接口

目录
相关文章
|
7月前
|
监控 网络协议 Ubuntu
Linux网络配置全攻略:解读/etc/network/interfaces文件的精髓
Linux网络配置全攻略:解读/etc/network/interfaces文件的精髓
1275 1
|
8月前
|
设计模式 算法 C语言
【C/C++ 程序设计】 C++如何适配他人的接口(How to Adapt to Others‘ Interfaces in C++)
【C/C++ 程序设计】 C++如何适配他人的接口(How to Adapt to Others‘ Interfaces in C++)
174 1
|
语音技术 iOS开发 MacOS
Mac上的全局翻译利器 : Bob + PopClip
Mac上的全局翻译利器 : Bob + PopClip
681 0
|
Web App开发
Chrome操作指南——入门篇(十一)network
Chrome操作指南——入门篇(十一)network
Chrome操作指南——入门篇(十一)network
|
Python
Python编程:zope.interface实现接口
Python编程:zope.interface实现接口
169 0
|
C# 索引
C#(二十)之C#接口interface
接口的功能为一下两点: 1:接口作为约束与规范 2:优化程序设计
259 0
C#(二十)之C#接口interface
|
机器学习/深度学习 算法 数据可视化
DL之NIN:Network in Network算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之NIN:Network in Network算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之NIN:Network in Network算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
算法 算法框架/工具 计算机视觉
DL之U-Net:U-Net算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之U-Net:U-Net算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之U-Net:U-Net算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
C# 数据库
浅谈C#中的延“.NET研究”迟加载(2)——善用virtual
  之前的文章"浅谈C#中的延迟加载(1)——善用委托"中介绍了三层结构中在Model层对实体类的属性实现延迟加载的方法,该方法利用C#中的委托来实现,最后虽然延迟加载的目的得以实现,但是给客户端(例如UI层)暴露了不必要的属性(一个委托对象,我使用了泛型的Fun类来实现)。
917 0
|
存储 安全 C#
一起谈.NET技术,《Effective C#中文版:改善C#程序的50种方法》读书笔记
  从去年找工作以来,都没什么时间写博客[找工作的体会:建议以后有自己开公司的IT人一定要找IT专业人员做HR,好多公司的HR并不能真正发掘人才,他们形成了太多的偏见,如在学校期间学不了什么东西、只看学校有多少奖励等。
1186 0