0
你曾經寫過一個函數Foo,在你的程序中使用它,然後最終決定重構你的代碼並重寫另一個函數Bar,它比Foo好,並決定「哦,我們將使用Bar而不是Foo從今起」。但是,不是隻是刪除Foo,而是在代碼中替換Foo的每一個出現,您決定將Foo聲明爲Bar的一個別名?功能別名不好嗎?
你們中的一些人可能會說:你爲什麼不重寫函數Foo並將它的名字保存爲Foo,那麼你不必用Foo代替Foo的每一次出現?好吧,由於重構,Foo不再是一個合適的名字,因爲它不能反映這個函數的功能,所以我決定不保留它的名字。
這是什麼樣的retrocompatibility?
編輯:假設
- 富被寫了一個你的同事
- 說同事來富
- 你在誰認爲故事中的白癡比別人聰明,寫酒吧
這種* lazy *別名不好,是的。使用真正的重構工具。這並不是說別名是不好的。至於「兼容性」 - 取決於消費者是誰以及是否暴露等。但通常這種兼容性將由代理或其他棄用路由處理,而不是別名。 – 2012-05-24 16:22:19
這取決於Foo是否是Bar的*誤導*名稱。您的技術是保持向後兼容性的常用技術。在Java中,您可以將Foo標記爲'@ Deprecated',並註釋說Bar是更好的選擇,並且編譯器會將Foo的出現標記爲警告 –
哇,我不知道在Java中這很容易。很好的評論,謝謝。 – ychaouche