Skip to Content
面向对象的思考过程(原书第5版)
book

面向对象的思考过程(原书第5版)

by 马特 魏斯费尔德
August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
Pearson
Content preview from 面向对象的思考过程(原书第5版)

8.3 什么是契约

在本章的上下文中,我们定义契约为要求开发人员遵循API规格要求的一种机制。通常,API是指框架。在线字典网站Merriam-Webster(http://www.merriam-webster.com)定义契约为“两个或多个人或当事人,尤其是有法律效力的人之间的捆绑约定”。

当开发人员使用API时必须强制遵守约定,而项目经理、产品负责人或行业标准提供这些实施。当使用契约时,开发人员被要求遵守框架定义的规则,包括方法名、参数数量等(比如方法签名)。总之,这些标准用于倡导良好的开发实践。

术语契约

商业领域广泛使用契约,也包括软件开发领域。不要把这里的契约与其他软件设计概念中的契约混淆了。

强制遵守契约非常重要,因为开发人员总有可能会破坏契约。如果不强制遵守,一些淘气的程序员会决定重新发明轮子来自己实现代码,而不会使用框架提供的规格说明。如果人们通常习惯性漠视或回避标准,那么这个标准就没实际用途。在Java和.NET语言中,实现契约的两种方式是使用抽象类和接口。

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Node与Express开发(第2版)

Node与Express开发(第2版)

Ethan Brown
计算机科学导论:跨学科方法

计算机科学导论:跨学科方法

罗伯特 塞奇威克, 凯文 韦恩
手把手教会你linux

手把手教会你linux

桑德.范.乌格特
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111684527