成人免费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高效數據中心數據中心

2014-04-17 10:16:50

2023-09-12 11:38:18

2013-12-04 09:33:15

軟件成本

2015-08-27 13:45:25

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

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

嫦娥玉兔美照

2012-08-03 09:03:31

Windows Ser微軟

2020-02-11 17:15:09

開發者拋棄 Executors

2020-02-13 09:14:16

Executors開發Java

2015-10-13 15:58:38

Javascript循環變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久电影 | 欧美精品一区二区三区在线 | 成人免费视屏 | 亚洲成人精品久久久 | 色婷婷综合久久久中文字幕 | 精品国产一区二区三区性色av | 久久久久久国产精品 | 欧日韩不卡在线视频 | 亚洲精品一区二区三区四区高清 | 精品欧美一区二区三区久久久 | 日韩av一区二区在线观看 | 久久久久久久久久久久一区二区 | 日本午夜精品一区二区三区 | 国产一级毛片精品完整视频版 | 精品视频在线免费观看 | 久久久久久久91 | 亚洲国产精品久久久 | 黄色大片网 | 91精品国产91久久综合桃花 | 日韩成人在线视频 | 欧美一二三 | 在线一区视频 | 96国产精品久久久久aⅴ四区 | 羞羞视频网站免费看 | 亚洲高清在线 | 欧美视频偷拍 | 亚洲综合色视频在线观看 | 国产精品久久久久久吹潮日韩动画 | 午夜精品一区二区三区在线观看 | 国产婷婷 | 日日夜夜狠狠操 | 色婷婷综合久久久中字幕精品久久 | 亚洲国产精品一区二区久久 | 国产精品久久久久久久久久久免费看 | 国产一级视频免费播放 | 国产a区 | 免费在线观看一区二区三区 | 久久爆操 | 91麻豆久久久 | 天堂一区二区三区 | 久久久久91|