天天看點

面向概念的程式設計

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1921224

面向概念的程式設計

——介紹

Concept-Oriented Programming (COP)

在2007年11月中旬,老外Alexandr Savinov提出了一個“面向概念的程式設計”的新概念,其方法概述為用概念(concept)來代替目前的正常類(conventional class)、用包含關系(inclusion relation)來取代目前的繼承(inheritance)。

它推廣了OOP概念,允許程式設計者對交叉關系進行子產品化。

在面向概念的程式設計中,在通過定制行為的定制引用的對象通路期間,大量的函數被隐含地執行。這個新方法主要概括如下:

1)用概念來取代類

在OOP中,使用概念來取代類。概念由一對類來定義:一個引用類(reference class)和一個對象類(object class)。如果一個概念沒有定義其引用類,那麼它相當于正常類(傳統類)。對象類和引用類都帶有一些結構和行為方法。

2)包含代替繼承

在CoP中使用包含關系類似于在OOP中使用繼承。包含擴充了繼承的概念,如果一個概念沒有定義其引用類,那麼包含就等同于繼承。一般而言,包含關系用IS-IN關系來解釋,而繼承是用IS-A來解釋。作為其結果之一,父對象可以有許多孩子。另一個結果是對象引用有一個層次結構。

3)雙重方法(Dual Methods)

每一個概念為每個方法都提供了兩個定義,分别在引用類和對象類中。然而,當方法被使用

4)交叉關系(Cross-cutting concerns)

雙親截取所有的獨立于子對象的通路請求的能力使其在已存在的程式中子產品化交叉關系稱為可能。這意味着雙親概念在AOP中扮演了一個‘方面’的角色,但是它和AOP的方面是完全不同的。

5)資料模型(Data Modelling)

CoP是資料模型新方法的一部份,它被命名為面向概念的資料模型(concept-oriented data model,CoM)。這個資料模型由兩部分組成:特征模型(identity modeling)和實體模型(entity modeling)。正因為概念是由這兩部份來定義的。CoP用特征模型進行處理,從這點來看,在整合資料模型和程式設計中,它是很有前途的。 

繼續閱讀