淺談golang語言中的OOP

淺談golang語言中的OOP

理解go語言中面向對象的思想,就是理解struct和interface的過程。簡單來說go語言中的對象就是struct,面向對象的思想就是一種組合思想,以struct爲基本的單元,支持struct之間的組合和嵌入,並可以爲struct綁定方法。那麼如何完成對對象方法的調用呢?直接由struct的實例來調用他所屬的方法,這樣顯然是一種調用方式,但是這樣的弊端顯而易見,當有多個對象有相同的方法時,我們無法窮舉出所有對象(go的語法中可沒有繼承的概念哦),因爲有些對象在當時的上下文中並不存在(其實就是如何表徵對象的問題),所有我們需要對方法進行分類。這裏就抽象出interface的概念,interface是由單個和多個方法組成,任何struct實現了某個interface中的所有方法,即可認爲該struct加入了該interface中(注意:這裏所說的加入指的是一種關係。比如:你做爲struct,這裏有2個協會籃球協會和排球協會做爲2個interface,籃球協會有個方法,要求會打籃球,排球協會有個方法,要求會打排球,當你既會打籃球,也會打排球,那你就加入了這2個協會,你和2個協會之間就形成了一種關係。)。同時interface也能表徵struct,通過一種反射機制,從interface又能獲取原本的struct。interface就像是struct臉上的一種面具,struct可以有多個面具戴在臉上,揭開任一面具都能知道你是誰。一種面具代表一類,也就是通過一種面具可以局部表徵擁有該面具的struct。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章