自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C語言對象編程構思

企業(yè)動態(tài)
我覺得面向?qū)ο蟮木幊趟枷刖褪?,一個大型工程是分層次結(jié)構的,每層又由抽象的結(jié)構連接為整體(框架化),各個抽象結(jié)構之間是彼此獨立的,可以獨立進化(繼承,多態(tài))。層次之間,結(jié)構之間各有統(tǒng)一的通訊方式(通常是消息,事件機制)。

其實C語言誕生以來,人們就想了很多辦法來體現(xiàn)“面向?qū)ο?rdquo;的思想。下面就來說說我所知道的方法。

 

有的人不禁要問,宏定義怎么扯到這里來了,我們可以先看一個簡單的例子:

 

 

  1. #define MacroFunction Afunction 

 

然后在程序里面你調(diào)用了大量的AFunction,但是有一天,你突然發(fā)現(xiàn)你要用BFunction了,(不過AFunction又不能不要,很有可能你以后還要調(diào)用),這個時候,你就可以#define MacroFunction Bfunction來達到這樣的目的。

 

當然,不得不說這樣的辦法是too simple,sometime na?ve的,因為一個很滑稽的問題是如果我一般要改為BFunction,一半不變怎么辦? 那就只好查找替換了。

 

靜態(tài)的入口函數(shù),保證函數(shù)名相同,利用標志位調(diào)用子函數(shù):

 

這樣的典型應用很多,比如說網(wǎng)卡驅(qū)動里面有一個入口函數(shù)Nilan(int FunctionCode,Para*)。具體的參數(shù)是什么記不清楚了。保證相同的函數(shù)名就是說:網(wǎng)卡驅(qū)動是和pNA+協(xié)議棧互連的,那么如何保證pNA+協(xié)議棧和不同的驅(qū)動都兼容呢,一個簡單的辦法就是僅僅使用一個入口函數(shù)。

通過改變?nèi)绻瘮?shù)的參數(shù)值,來調(diào)用內(nèi)部的各個函數(shù)。這樣的做法是可以進化的:如果以后想調(diào)用新的函數(shù),增加相應的函數(shù)參數(shù)值就好了。如果我們將網(wǎng)卡驅(qū)動和pNA+協(xié)議棧看作兩個層的話,我們可以發(fā)現(xiàn):

 

層與層之間的互連接口是很小的(這里是一個入口函數(shù)),一般是采用名字解析的辦法而不是具體的函數(shù)調(diào)用(利用FunctionCode調(diào)用函數(shù),Nilan僅僅實現(xiàn)名字解析的功能)――!接口限制和名字解析

 

接口限制:層與層之間僅僅知道有限的函數(shù)

 

名字解析:層與層之間建立共同的名字與函數(shù)的對應關系,之間利用名字調(diào)用功能。 面向?qū)ο蟮睦砟钍亲园l(fā)的,源自天然的。所以面向?qū)ο蠹夹g被設計得最遵循思維的自然方式。也就是說,用到的符號,術語,定義和每個人都相關?;诿嫦?qū)ο蟮姆治龊驮O計技術的這些特點,客戶可以從始至終參與到系統(tǒng)的分析中去,參與到系統(tǒng)的設計。由于在討論對象之間的交互作用時,大家使用同樣的術語概念。客戶還可以參與文檔的創(chuàng)建和編寫,因為他明確已有對象的含義。這樣分析出來的設計絕對是符合需求易于客戶使用及管理的。

 

另外加上面向?qū)ο蠹夹g方面的繼承等技術,使得應用系統(tǒng)的的升級變的輕松。當今計算機硬件的飛速發(fā)展使得由于使用面向?qū)ο蠹夹g帶來的速度效率問題變得越來越?jīng)]那么重要了,而各個行業(yè)對于計算機的使用使得軟件越來越復雜,清晰的分析和設計條理變成了更主要的問題,而面向?qū)ο笫欠浅_m合解決這個問題的。

 

(1)系統(tǒng)分層在數(shù)據(jù)庫和客戶端加入一個中間層,在這一層添加業(yè)務層和數(shù)據(jù)訪問層,數(shù)據(jù)訪問層與數(shù)據(jù)庫交互為業(yè)務層提供數(shù)據(jù)服務。業(yè)務層為客戶層提供經(jīng)過分析及過濾篩選之后的對象及對象集合。

面向?qū)ο蟮睦砟钍亲园l(fā)的,源自天然的。所以面向?qū)ο蠹夹g被設計得最遵循思維的自然方式。也就是說,用到的符號,術語,定義和每個人都相關?;诿嫦?qū)ο蟮姆治龊驮O計技術的這些特點,客戶可以從始至終參與到系統(tǒng)的分析中去,參與到系統(tǒng)的設計。由于在討論對象之間的交互作用時,大家使用同樣的術語概念??蛻暨€可以參與文檔的創(chuàng)建和編寫,因為他明確已有對象的含義。這樣分析出來的設計絕對是符合需求易于客戶使用及管理的。

 

另外加上面向?qū)ο蠹夹g方面的繼承等技術,使得應用系統(tǒng)的的升級變的輕松。當今計算機硬件的飛速發(fā)展使得由于使用面向?qū)ο蠹夹g帶來的速度效率問題變得越來越?jīng)]那么重要了,而各個行業(yè)對于計算機的使用使得軟件越來越復雜,清晰的分析和設計條理變成了更主要的問題,而面向?qū)ο笫欠浅_m合解決這個問題的。

【編輯推薦】

  1. 51CTO:技術人也看世界杯——每日球評
  2. 生命何其輕 技術人員當注重心理健康
  3. 信息技術人才成長的一般規(guī)律和特殊規(guī)律
  4. 章文嵩:攜手技術人才 打造低碳淘寶
  5. 噩耗:搜狐無線事業(yè)部一技術人員猝死

 

責任編輯:佚名 來源: 51CTO.com
相關推薦

2011-05-13 15:46:49

C模塊化

2017-10-12 17:58:42

C語言Gtk+應用功能測試

2022-10-17 14:51:22

編程語言開發(fā)軟件

2018-11-06 10:53:10

2020-07-24 09:40:04

C語言OOP代碼

2021-05-28 05:34:06

Golang語言編程

2020-10-19 14:23:48

C語言編程語言

2010-03-19 09:39:17

Python編程語言

2023-05-24 09:31:51

CGo

2009-10-23 12:53:25

VB.NET語言

2022-10-21 09:01:41

StudentC++類型

2019-07-05 13:42:33

Python編程語言JavaScript

2020-06-12 10:46:18

C語言棧內(nèi)存結(jié)構體

2024-04-02 07:32:58

Go語言接口

2009-08-14 15:54:12

C#編程語言

2011-07-14 22:25:36

2020-10-30 07:11:31

C 語言編程

2024-01-08 07:02:48

數(shù)據(jù)設計模式

2009-06-19 16:12:22

Java語言properties

2009-01-12 08:48:04

點贊
收藏

51CTO技術棧公眾號