成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

干嘛不去掉“I”和“Impl”?

開發 后端
今天早上我仔細研究TopShelf項目的源代碼,想追查里面一個API的修改,突然發現TopShelf終于向新近流行的去掉接口名稱上的“I”字母做法屈服了。在.NET上這還是個新事物,使用Java的人這樣做了有一段時間了,但在.NET里很多都還是新事物。這些可不是從ruby偷來的。

今天早上我仔細研究TopShelf項目的源代碼,想追查里面一個API的修改,突然發現TopShelf終于向新近流行的去掉接口名稱上的“I”字母做法屈服了。在.NET上這還是個新事物,使用Java的人這樣做了有一段時間了,但在.NET里很多都還是新事物。這些可不是從ruby偷來的。

如果你對此不太熟悉,我先解釋一下,傳統的習慣是在接口的名稱前加入一個毫無必要的“I”字母,事實上這個接口的使用者并不在意這個接口前是否有個“I”字母,這種加入“I”字母的形式是一種匈牙利標記法,文明世界里幾乎一致認為這是一種糟糕的做法。

所以你的代碼…

 

  1. public interface ISomeBehavior { } 

..應該寫成..

 

  1. public interface SomeBehavior { } 

這樣合情合理。而有問題的是當你把一個實現這個接口的類像下面這樣命名時:

 

  1. public interface SomeBehavior { }    
  2.  
  3. public class SomeBehaviorImpl { }   

 

我不知道把接口上的“I”移到實現類上然后再加三個字母究竟有什么好處。除了讓我的指頭關節多活動幾下還能做什么?難道這個程序的使用方還在意這是一個沒有“I”的接口實現類嗎?

從一些基礎層面上講,接口就是個契約。契約聲明一個類要實現接口提供的特定用途的一些方法和屬性。從另一個角度看這個問題可以觀察接口的行為。

考察一下.NET里提供的IDisposable這個接口。沒有一個DisposableImpl伴隨著它。這個接口描述的是一個實現類型的特征,它可以代表任何的東西。

接口跟實現類并不是一對一的關系。事實上,一個類可以實現多個接口。引用Brett L. Schuchert的例子:

 

  1. class Manager : public ISing, public IDance {} 

保持簡潔的接口,讓manager們盡情放縱

我相信你看到這里已經露出憤怒的表情了,會想“那好,聰明人,你想讓我們怎么做?”

對于我,我喜歡這個“I”字母,但喜歡的是它讀起來像一種聲明。

 

  1. public interface IReadFiles { } //我讀取文件  
  2.  
  3. public interface ICalculateRates { } //我計算比例  
  4.  
  5. public interface ISingAndDance { //我唱歌跳舞}  

你會發現這和傳統的“I”/“Impl”用法相反。但這很酷不是?每個“I”都代表我,但這該死的“Impl”里不是。

【編輯推薦】

  1. Java開發者需要注意的十條法則
  2. 新手入門JavaWeb三層架構的配置詳解
  3. Java垃圾收集器使用小訣竅
  4. 高性能Java代碼之內存管理
責任編輯:金賀 來源: ITEYE博客
相關推薦

2025-05-08 09:10:00

2021-08-03 09:59:43

HTTPSTCP網絡協議

2021-03-11 08:50:58

Spring容器接口

2019-01-29 11:08:48

NginxApacheHTTP協議

2011-02-02 00:54:45

2017-07-14 09:57:47

共享經濟物聯網大數據

2019-04-26 13:55:02

Istio微服務架構

2022-03-14 09:39:06

PythonPDF圖片

2022-12-08 09:10:11

I/O模型Java

2023-09-28 08:21:20

i++++i高并發

2021-03-11 07:27:17

CPU空閑代碼

2020-09-29 10:20:02

Java編程語言

2020-10-16 09:18:29

Nginx

2022-02-21 22:58:25

排序rowid 排序優化

2021-11-24 07:56:56

For i++ ++i

2015-04-02 09:44:56

云計算成本評估

2018-10-11 09:00:09

2010-04-07 13:30:41

IO虛擬化

2009-02-18 10:08:46

Core i7Intel固態盤SSD

2011-10-17 10:01:18

IBMPower服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产美女免费视频 | 久久九九99| 亚洲成人综合在线 | 久久综合久久综合久久综合 | 久久久91精品国产一区二区三区 | 国产在线a | 在线观看av网站永久 | 欧美电影一区 | 91久久国产综合久久 | 在线免费观看毛片 | 国产成人免费 | 一级在线| 免费黄色大片 | 日韩精品一区二区三区在线观看 | 五月婷婷激情 | 精品99久久久久久 | 日韩精品在线视频 | 欧美日产国产成人免费图片 | www.久| 在线伊人网 | av成人在线观看 | 一呦二呦三呦国产精品 | 久久免费观看一级毛片 | 91中文字幕在线观看 | 懂色中文一区二区三区在线视频 | 91精品国产综合久久久久久丝袜 | 色婷婷在线视频 | 最近日韩中文字幕 | 毛片网站在线观看 | 国产成人精品一区二区三区视频 | 欧美一级淫片免费视频黄 | 欧美一区二区三区四区视频 | 欧美一二三区 | 日本不卡一区 | 欧美一级在线免费 | 成人午夜免费视频 | 国产精久久久久久 | 中文在线一区 | 亚洲精品一 | 亚洲第一成年免费网站 | 欧美日韩不卡合集视频 |