我最近一直在閱讀關於抽象的知識,以及組合和接口。我一直在想的是這個。假設我有一個簡單的類來完成一些工作,並返回double類型的值。如何隱藏用戶的返回數據類型實現
如果我想保護用戶免受更改返回類型的影響,我該如何設計一個類,以便用戶不必擔心我是使用double還是決定使用float,還是更糟糕。在某種程度上,在一個更復雜的情況下,我可能想要改變實施。但是,如果返回類型與我的課程的用戶相關聯,那將是嘗試修改的災難。
我最近一直在閱讀關於抽象的知識,以及組合和接口。我一直在想的是這個。假設我有一個簡單的類來完成一些工作,並返回double類型的值。如何隱藏用戶的返回數據類型實現
如果我想保護用戶免受更改返回類型的影響,我該如何設計一個類,以便用戶不必擔心我是使用double還是決定使用float,還是更糟糕。在某種程度上,在一個更復雜的情況下,我可能想要改變實施。但是,如果返回類型與我的課程的用戶相關聯,那將是嘗試修改的災難。
你應該創建一個變量爲私有,它的價值只能通過這種方法進行修改,例如:
class whatever {
private double x;
public void setX(double s)
{
x = d;
}
public double getX()
{
return x;
}
現在setX的()方法只能改變該變量的方式。
我有一個簡單的類來完成一些工作,並返回double類型的值。
我假設你的意思是說,類中有一個函數負責返回值,並且負責內部計算的類中還有其他函數(相對於用戶)。
我該如何設計一個類,以便用戶不必擔心我是使用double還是決定使用float,還是更糟糕。在某種程度上,在一個更復雜的情況下,我可能想要改變實施。但是,如果返回類型與我的課程的用戶相關聯,那將是嘗試修改的災難。
這是一個「向後兼容性」問題。通過向用戶公開你的函數,你基本上籤了一個合同,聲明這個函數將始終返回與之前實現一致的值(直到該產品版本的「生命週期結束」)。內部實現,即用於計算的所有函數都是可變的,前提是這不會改變結果。
您可以隨時添加和公開更多方法。作爲一個抽象的例子,假設你公開了一個返回int
的函數,因爲這可以精確地計算出來。用戶應該始終能夠使用它 - 如果你改變它將會破壞他們的所有代碼。現在你找到了一種浮點精度的方法,所以你增加了一個函數,該函數返回到上一個函數返回float
。用戶將(希望)現在可以適應這種變化,並且當你能夠刪除功能(由於「生命的終結」)時,所有東西都可以工作。