欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

理解Java面向?qū)ο缶幊淘O(shè)計(jì)

 更新時(shí)間:2022年01月18日 10:35:09   作者:碼農(nóng)洞見(jiàn)?  
這篇文章主要介紹了理解Java面向?qū)ο缶幊淘O(shè)計(jì),面向?qū)ο缶幊淌且环N編程思維方式和編碼架構(gòu)。下面詳細(xì)內(nèi)容,需要的小伙伴可以參考一下

1 前言

計(jì)算機(jī)革命的起源來(lái)自機(jī)器。編程語(yǔ)言就像是那臺(tái)機(jī)器。它不僅是我們思維放大的工具與另一種表達(dá)媒介,更像是我們思想的一部分。語(yǔ)言的靈感來(lái)自其他形式的表達(dá),如寫(xiě)作,繪畫(huà),雕塑,動(dòng)畫(huà)和電影制作。編程語(yǔ)言就是創(chuàng)建應(yīng)用程序的思想結(jié)構(gòu)。

面向?qū)ο缶幊蹋∣bject-Oriented Programming OOP)是一種編程思維方式和編碼架構(gòu)。

2 結(jié)構(gòu)化程序設(shè)計(jì)

結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是程序的易讀性。在該程序設(shè)計(jì)思想的指導(dǎo)下,編程基本是通過(guò)寫(xiě)不同目的的函數(shù)/過(guò)程來(lái)實(shí)現(xiàn),故又稱為“面向過(guò)程編程(Procedure Oriented Programming,POP)。面向過(guò)程開(kāi)發(fā)方式是對(duì)計(jì)算機(jī)底層結(jié)構(gòu)的一層抽象,它把程序的內(nèi)容分為數(shù)據(jù)和操縱數(shù)據(jù)的操縱兩個(gè)部分。這種編程方式的核心問(wèn)題是數(shù)據(jù)結(jié)構(gòu)和算法的開(kāi)發(fā)和優(yōu)化。

它解決了早期程序設(shè)計(jì)中大量用共享變量(全局變量)和GOTO語(yǔ)句,從而引發(fā)的結(jié)構(gòu)混亂,不易改錯(cuò)和復(fù)用的問(wèn)題。

3 面向?qū)ο缶幊淘O(shè)計(jì)

面向?qū)ο蟮乃枷胫饕腔诔橄髷?shù)據(jù)類型(Abstract Data Type, ADT),在結(jié)構(gòu)化編程過(guò)程中,人們發(fā)現(xiàn)把某種數(shù)據(jù)結(jié)構(gòu)和專用于操縱它的各種操作以某種模塊化方式綁定到一起會(huì)非常方便,做到“特定數(shù)據(jù)對(duì)應(yīng)特定處理方法”,使用這種方式進(jìn)行編程時(shí)數(shù)據(jù)結(jié)構(gòu)的接口是固定的。如果對(duì)抽象數(shù)據(jù)類型進(jìn)一步抽象,就會(huì)發(fā)現(xiàn)把這種數(shù)據(jù)類型的實(shí)例當(dāng)作一個(gè)具體的東西、事物、對(duì)象,就可以引發(fā)人們對(duì)編程過(guò)程中怎樣看待所處理的問(wèn)題的一次大的改變。

面向?qū)ο蟪绦蛟O(shè)計(jì)的主要精神是將存在于日常生活中的對(duì)象(Object)概念應(yīng)用在軟件設(shè)計(jì)的發(fā)展模式(Software Development Model)中,著重于對(duì)象的分解與相互作用,重點(diǎn)是強(qiáng)調(diào)程序代碼的可讀性(Readability)、可重復(fù)使用性(Reusability)與擴(kuò)展性(Extension),讓程序設(shè)計(jì)人員在設(shè)計(jì)程序時(shí)能以一種更生活化、可讀性更高的設(shè)計(jì)思路來(lái)進(jìn)行程序的開(kāi)發(fā)和設(shè)計(jì)。

4 碼農(nóng)洞見(jiàn)

面向?qū)ο缶幊毯兔嫦蜻^(guò)程編程是現(xiàn)在主流的兩種編程模式,它們既有區(qū)別也有。

4.1 兩種編程范式之間的區(qū)別

在面向?qū)ο缶幊坛霈F(xiàn)以前,面向過(guò)程頗受程序人員的青睞,因?yàn)槊嫦蜻^(guò)程編程采用的是“自上而下,步步求精”的編程思想,人們更易于理解這種思想。將程序一步一步的分解,并按照一定的順序執(zhí)行。這就是面向過(guò)程程序設(shè)計(jì),以過(guò)程為中心,以算法為驅(qū)動(dòng)。

程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)

但是面向過(guò)程程序設(shè)計(jì)的不足之處在于,面向過(guò)程的程序上一步和下一步環(huán)環(huán)相扣,如果需求發(fā)生變化那么代碼的改動(dòng)會(huì)很大,這樣很不利于軟件的后期維護(hù)和擴(kuò)展。

而面向?qū)ο蟪绦蛟O(shè)計(jì)的出現(xiàn)就可以很好的解決了這一問(wèn)題,它的設(shè)計(jì)思想是“萬(wàn)物皆對(duì)象”。

程序 = 對(duì)象 + 消息傳遞

但是“任何事物都有兩面性”,面向?qū)ο蟪绦蛟O(shè)計(jì)有其優(yōu)點(diǎn),但也帶來(lái)了“副作用”——執(zhí)行效率要低于面向過(guò)程程序設(shè)計(jì)。所以進(jìn)行科學(xué)計(jì)算和要求高效率的程序中,面向過(guò)程設(shè)計(jì)要好于面向?qū)ο笤O(shè)計(jì)。而且面向?qū)ο蟪绦虻膹?fù)雜度要高于面向過(guò)程的程序,如果程序比較小,面向過(guò)程要比面向?qū)ο蟾忧逦?/p>

4.2 兩種編程范式之間的聯(lián)系

面向?qū)ο笫窃诿嫦蜻^(guò)程的基礎(chǔ)上發(fā)展而來(lái)的,只是添加了它獨(dú)有的一些特性。面向?qū)ο蟪绦蛑械膶?duì)象就是由數(shù)據(jù)和方法構(gòu)成,所以完整的面向?qū)ο蟾拍顟?yīng)該是:

對(duì)象=數(shù)據(jù)+方法

更進(jìn)一步的可以描述為:

程序=對(duì)象+消息傳遞=(數(shù)據(jù)+方法)+消息傳遞

回到Java,我們說(shuō)在Java中萬(wàn)物皆對(duì)象,其實(shí)是在說(shuō)Java是一門(mén)面向?qū)ο蟮木幊陶Z(yǔ)言,Java程序的功能都是通過(guò)對(duì)象來(lái)完成的,根據(jù)業(yè)務(wù)需求將程序分解為不同的對(duì)象,再通過(guò)對(duì)象之間的相互調(diào)用關(guān)系來(lái)協(xié)同實(shí)現(xiàn)相應(yīng)的功能。對(duì)編程思想的理解會(huì)因?yàn)槟阕龅臉I(yè)務(wù)和代碼的累積發(fā)生改變,隨著知識(shí)的深入以及視野的開(kāi)闊,一段時(shí)間后再回頭看目前你所掌握的這些東西,你可能會(huì)發(fā)現(xiàn)某些地方理解得不夠透徹甚至有誤,這就是學(xué)習(xí)的過(guò)程。

到此這篇關(guān)于理解Java面向?qū)ο缶幊淘O(shè)計(jì)的文章就介紹到這了,更多相關(guān)Java面向?qū)ο缶幊淘O(shè)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論