成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序=算法+數據,對象在哪兒?

新聞
嚴格來看,對象不存在屬性,也沒有數據組織,只接收消息,給出反饋。對象自身是有狀態的。發同樣的消息,給出的反饋可能不同。這樣的對象方式,非常難以控制。

如果你認可程序=算法+數據,那么會發現,對象好像沒有存在的必要。

先來看看算法

按函數式編程的思路,算法就是把輸入轉換成輸出的過程。

比如常見的各種排序算法,不管過程如何,都是把沒有順序的集合轉化成有順序的集合的過程,描述如下:

sort: List -> List

再說數據

對于數據,眾說紛紜。最離譜的,是把函數當數據,沒有數據組織。

下面的例子以js語言描述了這一思想。

// create_user是一個構造函數,但返回的不是對象,而是函數。
// 兩個參數為:(姓名, 年齡)
let user = create_user("張三", 20)
// 通過返回函數的調用,獲取屬性
// 參數為屬性名
let name = user("name")
let age = user("age")

create_user的實現如下:

function create_user(name, age) {
// 返回一個取屬性值的函數,而非對象
return function(field_name) {
if (field_name == "name") {
return name
} else if (field_name == "age") {
return age
}
}
}

再一種,是把數據當一個個獨立的集合,數據之間沒有任何事先聲明的關系。

關系數據庫是典型的代表。例如,學生表與學生考試表,是兩個完全獨立的集合,沒有具體關系,所謂外鍵,只是學生考試表的一個字段而已。學生表與學生考試表,數據舉例如下:

學生表                        考試表
學號 姓名 學號 課程 成績
001 張三 001 語文 98
002 李四 001 數學 88
002 語文 78

數據是通過sql語句,臨時建立的關系。例如,下面的sql語句,通過笛卡爾乘積、篩選把兩個表之間的關系建立了起來。

select * from 學生表,考試表 where 學生表.學號=考試表.學號

第三種,是各種語言都提供的結構體,把數據組織成相互關聯的網狀結構。

下面的例子用rust語言描述了這個想法。

struct 學生 {
name: String,
考試: Vec<考試>
}
struct 考試 {
}

還有其他一些數據組織形式,不再贅述。

無結構數據

數據除了以上各種組織形式,還有無組織的,非結構數據。比如:

  • 程序源碼,程序源碼是無組織的數據,這個觀點很重要??
  • 日志文件,日志文件也是沒有被組織的數據。
  • 數據傳輸,被傳輸的數據,很多都沒有結構。

還有很多。

對于無結構數據,主要觀點是:

  • 當流對待!

其次的觀點是:

  • 把流轉換成有組織的數據!

最典型的例子,把程序源碼轉換成AST語法樹:

編譯:string -> Tree

對象是啥

上面的描述過程沒有對象存在。真正面向對象與數據無關,對象只接收消息,給出反饋。比如,學生對象:

let x = 一個學生
// set_name是消息名,方法參數是消息參數
x.set_name("張")
// get_name是消息名
x.get_name()

嚴格來看,對象不存在屬性,也沒有數據組織,只接收消息,給出反饋。對象自身是有狀態的。發同樣的消息,給出的反饋可能不同。這樣的對象方式,非常難以控制。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2019-07-23 16:00:36

區塊鏈存儲5G

2011-12-12 13:09:45

云計算

2012-10-25 16:40:11

WOT高效數據中心數據中心

2013-12-04 09:33:15

軟件成本

2015-08-27 13:45:25

2014-04-17 10:16:50

2023-09-12 11:38:18

2013-05-10 10:58:56

ERP

2015-09-24 10:24:38

北京大數據

2014-04-29 14:52:06

大數據

2020-03-25 09:20:21

自然語言處理

2010-06-23 09:41:17

Amazon Simp

2012-08-03 09:03:31

Windows Ser微軟

2020-02-11 17:15:09

開發者拋棄 Executors

2020-02-13 09:14:16

Executors開發Java

2020-04-21 16:01:13

自動駕駛新基建工信部

2017-10-11 11:17:16

SaaS出路中國式

2011-07-15 10:27:53

Windows微軟超級操作系統

2016-01-12 17:10:56

嫦娥玉兔美照

2018-08-31 08:51:31

C 語言開發編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一起操网站 | 日韩免费看片 | 国产精品久久久久影院色老大 | 99久久精品免费看国产小宝寻花 | 国产精品高潮呻吟 | 中文字幕一区二区不卡 | 午夜小视频在线播放 | 亚洲成人国产综合 | 国产视频一区二区 | 久久伊人精品 | 一区二区三区免费网站 | 一级片网址 | 久久国产香蕉 | 精品国产一区二区三区日日嗨 | 在线电影日韩 | 草草在线观看 | 国产精品色综合 | 国产精品久久久久无码av | 黄色av免费网站 | 国产高清在线精品一区二区三区 | 国产女人叫床高潮大片免费 | 欧美视频偷拍 | xx性欧美肥妇精品久久久久久 | 欧美成人精品一区二区男人看 | 日本在线一区二区 | 久久国产精品一区二区三区 | 国产视频精品在线观看 | 中文字幕国产一区 | 夏同学福利网 | 久久伊人精品一区二区三区 | 亚洲欧美一区二区三区1000 | 欧美一区成人 | 国产精品久久久久久久久久久久久久 | 国产一区二区免费 | 亚洲精色 | 91社区在线观看高清 | 综合久久99 | 黄色毛片一级 | 欧美大片久久久 | 99视频免费 | 欧洲一级毛片 |