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