- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 350字
- 2022-05-06 15:51:44
6.4 檢查前提條件
接下來,我們將注意力轉(zhuǎn)向當前主構(gòu)造方法的一個問題。本章最開始曾經(jīng)提到,有理數(shù)的分母不能為零。而目前我們的主構(gòu)造方法接收以參數(shù)d傳入的零:

面向?qū)ο缶幊痰囊粋€好處是可以將數(shù)據(jù)封裝在對象里,以確保整個生命周期中的數(shù)據(jù)都是合法的。對Rational這樣的不可變對象而言,這意味著需要確保在構(gòu)造對象時數(shù)據(jù)合法。由于對于Rational數(shù)來說分母為零是非法的狀態(tài),因此當0作為參數(shù)d傳入的時候,不應該允許這樣的Rational實例被構(gòu)建出來。
解決這個問題的最佳方式是對主構(gòu)造方法定義一個前提條件(precondition),參數(shù)d必須為非0值。前提條件是對傳入方法或構(gòu)造方法的值的約束,是方法調(diào)用者必須滿足的。實現(xiàn)它的一種方式是使用require方法,[1]就像這樣:

require方法接收一個Boolean類型的參數(shù)。如果傳入的參數(shù)為true,則require方法將會正常返回;否則,require方法將會拋出IllegalArgumentException來阻止對象的構(gòu)建。
推薦閱讀
- OpenDaylight Cookbook
- AngularJS Testing Cookbook
- Drupal 8 Blueprints
- Python數(shù)據(jù)分析(第2版)
- Python應用輕松入門
- Mastering JavaScript High Performance
- Angular開發(fā)入門與實戰(zhàn)
- Getting Started with LLVM Core Libraries
- AutoCAD 2009實訓指導
- Spring MVC+MyBatis開發(fā)從入門到項目實踐(超值版)
- Creating Data Stories with Tableau Public
- PHP與MySQL權(quán)威指南
- Greenplum構(gòu)建實時數(shù)據(jù)倉庫實踐
- 交互設計師成長手冊:從零開始學交互
- Google Adsense優(yōu)化實戰(zhàn)