最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1 前言

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

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

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

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

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

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

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

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

4 碼農(nóng)洞見

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

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

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

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

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

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

程序 = 對象 + 消息傳遞

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

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

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

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

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

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

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

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

相關(guān)文章

  • 聊聊@RequestMapping和@GetMapping @PostMapping的區(qū)別

    聊聊@RequestMapping和@GetMapping @PostMapping的區(qū)別

    這篇文章主要介紹了@RequestMapping和@GetMapping及@PostMapping的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • springboot2.0集成rabbitmq的示例代碼

    springboot2.0集成rabbitmq的示例代碼

    這篇文章主要介紹了springboot2.0集成rabbitmq的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Spring+Hibernate+Struts(SSH)框架整合實戰(zhàn)

    Spring+Hibernate+Struts(SSH)框架整合實戰(zhàn)

    SSH是 struts+spring+hibernate的一個集成框架,是目前比較流行的一種Web應(yīng)用程序開源框架。本篇文章主要介紹了Spring+Hibernate+Struts(SSH)框架整合實戰(zhàn),非常具有實用價值,需要的朋友可以參考下
    2018-04-04
  • file.mkdir()、file.mkdirs()和file.createNewFile()的區(qū)別

    file.mkdir()、file.mkdirs()和file.createNewFile()的區(qū)別

    本文主要介紹了file.mkdir()、file.mkdirs()和file.createNewFile()的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • SpringBoot + openFeign實現(xiàn)遠(yuǎn)程接口調(diào)用的過程

    SpringBoot + openFeign實現(xiàn)遠(yuǎn)程接口調(diào)用的過程

    現(xiàn)在的微服務(wù)項目不少都使用的是springboot+spring cloud構(gòu)建的項目,微服務(wù)之間的調(diào)用都離不開feign來進(jìn)行遠(yuǎn)程調(diào)用,這篇文章主要介紹了SpringBoot + openFeign實現(xiàn)遠(yuǎn)程接口調(diào)用,需要的朋友可以參考下
    2022-11-11
  • Java中Semaphore信號量的方法解析

    Java中Semaphore信號量的方法解析

    這篇文章主要介紹了Java中Semaphore信號量的方法解析,??Semaphore信號量是用來控制同?時訪問?特定?資?源的?線?程數(shù)量,它通?過協(xié)調(diào)?各個?線?程,以保證合理的使用公共?資源,需要的朋友可以參考下
    2023-12-12
  • Spring Security6 最新版配置及實現(xiàn)動態(tài)權(quán)限管理

    Spring Security6 最新版配置及實現(xiàn)動態(tài)權(quán)限管理

    Spring Security 在最近幾個版本中配置的寫法都有一些變化,很多常見的方法都廢棄了,并且將在未來的 Spring Security7 中移除,因此又補充了一些新的內(nèi)容,重新發(fā)一下,供各位使用 Spring Security 的小伙伴們參考,需要的朋友可以參考下
    2024-03-03
  • 關(guān)于log4j日志擴展---自定義PatternLayout

    關(guān)于log4j日志擴展---自定義PatternLayout

    這篇文章主要介紹了關(guān)于log4j日志擴展---自定義PatternLayout,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 解決Eclipse/STS中出現(xiàn)Resource is out of sync with the file system的異常問題

    解決Eclipse/STS中出現(xiàn)Resource is out of sync with the file system

    今天小編就為大家分享一篇關(guān)于解決Eclipse/STS中出現(xiàn)Resource is out of sync with the file system的異常問題,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java實現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解

    Java實現(xiàn)鏈表中元素的獲取、查詢和修改方法詳解

    這篇文章主要介紹了Java實現(xiàn)鏈表中元素的獲取、查詢和修改方法,結(jié)合實例形式詳細(xì)分析了Java針對鏈表中元素的獲取、查詢和修改相關(guān)原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下
    2020-03-03

最新評論

巩留县| 淮滨县| 奉贤区| 尉犁县| 朝阳县| 东兰县| 丰台区| 新昌县| 文山县| 西乌珠穆沁旗| SHOW| 黎川县| 赫章县| 紫云| 青河县| 浙江省| 烟台市| 永川市| 嘉义市| 额尔古纳市| 宾川县| 边坝县| 梓潼县| 津市市| 独山县| 班戈县| 资阳市| 罗平县| 页游| 通海县| 连江县| 宁国市| 北川| 巫溪县| 福建省| 行唐县| 内江市| 东台市| 炉霍县| 界首市| 大方县|