Composite Oriented Programmint
對比OOP似乎是更適合描述現實世界狀態
我在Apache Zest Project中看到這個觀念
Zest是由Qi4j納入Apache後改的名稱
而Qi4j原先提倡觀念如下:
1.Behavior depends on Context
2.Decoupling is a virtue
3.Business Rules matters more.
4.Classes are dead, long live interfaces.
有人對COP程式設計有研究嗎?
會是未來新的語言的設計考量嗎?
目前Zest是屬於將Java轉化為COP思考模式的做開發的一個框架
https://zest.apache.org/java/2.1/two-minutes-intro.html
Hello world範例如連結
我理解的觀念是
將Interface看成是一個Role
class是實作方法的地方
一個Role可能會有早上當程式設計師晚上下班兼職做網路賣家
所以可以寫
Developer.class實作coding() ,debug()
Seller.class 實作sell(), shipping()
隨時想要讓這個Role處理什麼事情
只要Role跟class混合(mixin)
就可以使用該方法。
所以Role去mixin Develope.class
會產生一個Instance
就可以用coding() debug()
不知道理解有沒有錯。
感覺這樣的設計思想還不錯,
估計可以提升class的重用機率,
比起不斷的繼承造成肥大的體系似乎來的好的多?