javascript - 一些思想之间的区别的问题
经常看到说
1.面向对象编程
2.模块化编程
3.函数式编程
这三个指的是一个思想吗?在实际工作中好像一直是出现问题解决问题,并未特别的关注
三个思想之间有什么明显的区别吗?
回复内容:
经常看到说
1.面向对象编程
2.模块化编程
3.函数式编程
这三个指的是一个思想吗?在实际工作中好像一直是出现问题解决问题,并未特别的关注
三个思想之间有什么明显的区别吗?
我的理解:
面向对象编程和函数式编程,一般使用不同语言就有不同的方式,至少是偏重。比如你用Java,一般都面向对象编程,比如你用JS,那一般都是函数式编程。
模块化编程更多的是偏组织方式,就不管是面向对象还是函数式编程,功能复杂了都需要模块化来组织功能,做到高内聚。
建议找一些不同编程范式的资料实际上手试一试,会有更深的理解。
不管是对象还是函数编程,基础都是过程化编程.
过程化编程体现在结构化程序设计:
特征:将程序中的数据与处理数据的函数分离
基本结构:顺序结构,选择结构,循环结构
设计方法:自顶向下,逐步细化,模块化,结构化编码
支持对象编程的语言体现在提供了类的封装.
支持函数式编程的语言体现在函数也是一个量,比如可以当做参数传递(闭包),也可以作为哈希表的一个值.
比如:
Java完全不允许将函数当作数据来传递.
而JS和PHP都可以将函数当作数据来传递.
函数表(哈希表+匿名函数):
函数名为键,匿名函数为值.
JS(用函数表组织函数,体现一等函数):
<code>var func = { foo: function(arg){alert(arg);}, bar: function(arg){alert(arg);} }; func.foo("php"); //func["foo"]("php"); func.bar("best"); //func["bar"]("best");</code>
PHP(面向数组编程:把函数和变量封装在数组内):
<code>$func = array( 'foo' => function($arg){echo $arg;}, 'bar' => function($arg){echo $arg;} ); call_user_func_array($func['foo'], array('php')); call_user_func_array($func['bar'], array('best'));</code>
如何更快的完成你的工作。工作中其实考虑点特别多。比如,就给你一分钟。让你写个alert弹框。你还要去判断一下,做个封装?不可能吧。比如你们公司都用面向对象的手法,你就不,你就不封装,就乱写。有必要吗?这些都只不过是你的习惯或者说一个工作规范,目的都是为了更快更好的完成工作。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

使用依赖注入(DI)的原因是它促进了代码的松耦合、可测试性和可维护性。1)使用构造函数注入依赖,2)避免使用服务定位器,3)利用依赖注入容器管理依赖,4)通过注入依赖提高测试性,5)避免过度注入依赖,6)考虑DI对性能的影响。

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

Java'splatformindependencebenefitswebapplicationsbyallowingcodetorunonanysystemwithaJVM,simplifyingdeploymentandscaling.Itenables:1)easydeploymentacrossdifferentservers,2)seamlessscalingacrosscloudplatforms,and3)consistentdevelopmenttodeploymentproce

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自动化notifications andMarketingCampaigns.1)设置设置yourphpenvironcormentswironmentswithaweberswithawebserverserverserverandphp,确保themailfunctionisenabled.2)useabasicscruct

Go语言使用"strings"包进行字符串操作。1)拼接字符串使用strings.Join函数。2)查找子串使用strings.Contains函数。3)替换字符串使用strings.Replace函数,这些函数高效且易用,适用于各种字符串处理任务。
