對於物件的動態建立例項問題

lucky發表於2016-10-20

可能是自身學習不足,對設計模式什麼不夠了解,今天遇到了一個問題 具體情況是這樣: 在 http 請求中,客戶端會傳一定的引數給服務端 (比如 json,服務端 json->Struct) 假定服務端有

type I interface{}
type A struct{}
type B struct{}
type C struct{}
....
//這些struct裡面的屬性都會不一致,但是會和客戶端引數一一對應,並且都假定實現了I介面

現在實現情況是根據客戶端一個引數,比如 p,來確定使用哪個 struct 程式碼就會變成

switch p {
    case x1:
    s := A{}
    case x2:
    s: = B{}
    case x3:
    ....
    ....
}
//這樣的虛擬碼很醜而且維護起來比較尷尬,因為有個case,程式碼多少都會有點耦合,在新增或者刪除struct的時候都需要去刪除相應的case

有沒有比較優雅的方法,讓 A\B\C 這樣的 struct 完全獨立,增加刪除不會影響到其他 因為是之前寫 php 的,php 程式碼的意思類似

<?php
Class A {}
$obj = "A"
$a = new $obj

不知道有沒有表達清楚,有點長 謝謝大家

更多原創文章乾貨分享,請關注公眾號
  • 對於物件的動態建立例項問題
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章