Programming Language Pragmatics 4ed by Michael Scott說,Java和C#可以模仿C和C++頭文件:Java和C#如何模仿頭文件構造?
爲了模仿早期頭的軟件工程實踐網絡文件建設, Java或C#設計團隊可以創建的骨架版本(在公共類) 其包或命名空間,然後可以由並行和獨立地由負責完整版本的程序員使用。
是什麼意思:
「創建(公共類) 其包或命名空間的骨架版本的」 使用,同時
」獨立,由程序員負責完整版本「?
謝謝。
Programming Language Pragmatics 4ed by Michael Scott說,Java和C#可以模仿C和C++頭文件:Java和C#如何模仿頭文件構造?
爲了模仿早期頭的軟件工程實踐網絡文件建設, Java或C#設計團隊可以創建的骨架版本(在公共類) 其包或命名空間,然後可以由並行和獨立地由負責完整版本的程序員使用。
是什麼意思:
「創建(公共類) 其包或命名空間的骨架版本的」 使用,同時
」獨立,由程序員負責完整版本「?
謝謝。
「創建(公共類)的包或命名空間的骨架版本」
這意味着,設計者寫的一些或全部的實現細節丟失的Java或C#源代碼;例如接口
「由負責完整版本的程序員同時並獨立使用」?
這意味着程序員編寫了其餘的代碼。
這意味着創建沒有實現的類的版本。在C#中,通常的做法是讓所有成員拋出NotImplementedException
。例如: -
public class Database
{
public IEnumerable<Employee> GetAllEmployees() => throw new NotImplementedException();
}
雖然這種做法限制了你的設計在某些方面類似的方法將只創建接口,但沒有實現它們的類,例如:
public interface IDatabase
{
IEnumerable<Employee> GetAllEmployees();
}
,例如您不能將其用於具有公共靜態成員的類型。
使用這兩種方法,其他程序員可以開始編寫使用Database
/IDatabase
的代碼,即使尚未完成實現。這種做法的一個問題是那些程序員不能測試他們的代碼,除非他們創建他們自己的測試實現(例如使用模擬)。
它意味着它的意思。什麼是骨架?骨頭沒有任何肉,意味着只是最終完成版本的定義。即使肉的肉不存在,您也可以在開發過程中使用該骨架代替最終構造。 –
這本書似乎沒有那麼有用。實際上,這可以通過定義Java接口(和一些數據對象),然後使用mock來處理客戶端來完成。 – chrylis