自由支配!不要讓MCU、內(nèi)核或編程語言干擾你的設計
用戶輸入的兩種實現(xiàn)均可服務于“GetThermostatSetting”、“IsHeaterEnabled”、“IsCoolerEnabled”和“IsFanOn”。對于第一個墻恒溫器應用,“用戶輸入”將數(shù)字端口包裝到所列的服務中,當設備被調(diào)用時,提供端口的實時讀數(shù)(一種可能的實施)。對于另一個應用,基于I2C從機的實現(xiàn),相同的服務將來自I2C主機寫入的寄存器的最新值返回到“控制邏輯”部分,也許經(jīng)常返回也許僅在上電時返回。并且這些實現(xiàn)還有很多其它特點,包括用作切換鍵的墻上按鈕開關而不是瞬間讀數(shù),甚至在“用戶輸入”部分的wrappers深層進行邊沿觸發(fā)異步處理。
綜合上述的關鍵是:系統(tǒng)設計隱藏了硬件細節(jié);硬件和實施細節(jié)被系統(tǒng)設計包裝并隱藏。通過外端設計(即代碼)的實施細節(jié),可以保護這些應用實現(xiàn)時避免分裂,可以做到個性化的設計,權衡利弊,保證項目成功交付,并仍然能夠提供可復用性和組設計。不要讓賣方牽引注意力——先設計系統(tǒng),然后加強保護系統(tǒng)設計實現(xiàn)細節(jié)不被抄襲。
評論