information-hiding

    2熱度

    6回答

    很多時候我參與API的設計/實現,我面臨着這樣的困境。 我的information hiding一個非常強有力的支持者,並嘗試使用各種技術的是,包括但不限於內部類,私有方法,包私人預選賽等 的問題,這些技術是他們傾向於防止良好的可測試性。雖然其中一些技巧可以解決(例如通過將課程放入同一個包中來實現包的私密性),但其他技術可能需要反思魔術或其他技巧。 讓我們看看具體的例子: public class

    0熱度

    3回答

    我知道這是一個愚蠢的問題,但是, 我的客戶要求加密他們的支付系統的一些信息,以防止用戶竊取個人信息。 該系統是網絡的基礎,並通過ASP.NET 我們已經嘗試了一些惱人的解決方案編寫,如JavaScript沒有右鍵單擊或CSS-無打印 但顯然我的客戶不喜歡它。 那麼是否有任何商業解決方案來加密aspx製作的html頁面中的信息? 或者有人可以告訴我如何追求我的客戶在基於Web的系統中阻止這些「防止偷

    3熱度

    2回答

    對於某些類的靜態C++庫,我想爲庫的用戶和庫本身提供不同的接口。 一個例子: class Algorithm { public: // method for the user of the library void compute(const Data& data, Result& result) const; // method that I us

    4熱度

    8回答

    你在哪裏把私人函數的單元測試放在C#類中? 的article in Wikipedia提示: 把測試在同一個班,他們正在測試 使用部分類 個人成員,這些方法都似乎是適當的,和我更願意將單元測試放在一個單獨的項目中。 對此有何看法? (我知道有關於是否私有方法應該在所有被測試的辯論相當數量的。我想聽到爭論的雙方。)

    11熱度

    5回答

    我目前正在建立一個ASP.NET MVC項目,以NHibernate作爲其持久層。 現在已經實現了一些功能,但只使用本地NHibernate會話:訪問數據庫的每個方法(讀取或寫入)需要使用「using()」子句實例化自己的NHibernate會話。 問題是我想利用NHibernate的延遲加載功能來提高我的項目的性能。 這意味着一個開放的NHibernate會話每個請求,直到視圖呈現。此外,必須支

    1熱度

    1回答

    有誰知道一個好的解決方案,可以從PHP使用,將有效地移除聯繫人信息,如電話號碼,電子郵件地址,甚至可能從文檔中的聯繫人地址? 更新 嗨,這裏是我想出了這麼遠,它工作得很好。 function sanitizeContent($content) { // emails - even containing white space characters like this 't

    0熱度

    1回答

    如何專門化在我的類的主體中的某個外部名稱空間中定義的模板? 混凝土例如使用BGL不編譯: class A { namespace boost { template <class ValueType> struct container_gen<SomeSelectorS, ValueType> { typedef std::multis

    1熱度

    4回答

    我知道這聽起來很蠢,但我真的想知道目前:) IM學習C#, ,當你知道你需要設置「對象」(按鈕,標籤,文本,變量等)公共或任何你喜歡的。 但是,你仍然需要編寫這樣的代碼: // my point is you cant just type label1.text you need to type class.label1.text // so there is no chance of gett

    8熱度

    8回答

    真的不可能在jar文件中隱藏一些類嗎? 我不想讓類的直接實例化,以保持它更靈活。這個罐子裏只能看到工廠(或者一個門面)。 除了創建兩個項目之外,還有別的辦法解決這個問題嗎? (兩個項目:第一個包含的類(實現)和第一個另外一個引用,幷包含了工廠;後來只有第二個將被引用)

    0熱度

    5回答

    想象一下以下模型: 一個表有許多行 一個行有許多細胞 什麼會是較好的界面來處理這些「面向對象的方式」的類? 1 - 提供來訪問屬性行/細胞(不一定暴露下面的數據結構,但創建例如一個類RowCollection ...) my_table = new Table() my_table.rows.add([1,2,3]) my_row = my_table.rows.get(0) my_row.