• 关于

    OOP

    的搜索结果

回答

JS准确来说应该算是函数式语言,但是它确实能实现面向对象。基于为什么要使用面向对象的技术,是因为面向对象的封装、继承、多态等特性能提高编程效率,可复用性等,这一点在开发大中型项目里体现的尤为明显。当然程序运行的效率其实跟你使用的是面向过程还是面向对象无关,而是跟你写的具体代码或是应用的框架有关。OOP是一种很好的理念,它不仅仅应用在代码实现上,而是贯穿于整个软件过程。至于OOP的缺点,我还真的是不怎么了解(如果真有的话, 或许需要更多的思考吧),因为我只用它的优点。在JS中要不要使用OOP,这个应该是要看场合的。比如,如果你使用了一个OOP实现的框架(ExtJS等)那么使用OOP是理所当然的。但是如果只是一段简单的操作DOM的JS,那么我觉得就完全没有考虑什么OOP。记住一点,如果要用OOP,那肯定是用了OOP写出更健壮,更具可维护性,更高效的代码,而不是因为觉得OOP更高级,更显技术才用。另外JS的闭包跟你是否使用OOP无关,这不是OOP中的特性,而是JS的链式作用域的一个特性,也就是说,你使用一般的方式在一个函数内部写了一个函数,而且把这个内部函数作为结果返回给外部调用,那一样面临闭包问题。闭包不是JS的Bug,而是一项语言特性,因为有些时候我们能利用它改变局部变量的作用域。当然如果使用不当或是不注意的话,确实会导致一些问题,比如变量引用与预期不一致,资源占用高,网页性能问题,IE中还可能出现内存泄露等。

a123456678 2019-12-02 03:10:52 0 浏览量 回答数 0

问题

OOP的意义是什么?

游客ufivfoddcd53c 2020-01-03 21:20:47 1 浏览量 回答数 1

回答

我建议你尝试将你的简单项目基于某一种框架重新做一次,我保证你对oop的感觉将会像滔滔江水连绵不绝的到来当然你也可以看一些优秀的tutorial,比如说symfony经典的jobeet:http://symfony.com/legacy/doc/jobeet/... ,跟着做完以后对sf框架和oop有一个感知然后你再看看设计模式,想想以前看过的书或者写过的代码,想想为什么和怎么做,更进一步你也可以尝试自己写一个框架。我相信做过这些事情会让你的oop思想突飞猛进的桌面应用程序开发最好也多少了解一下,因为oop或者设计模式上的一些概念好多都源自桌面程序开发,了解一下对你会有帮助

落地花开啦 2019-12-02 02:43:34 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

个人觉得PHP的OOP其实还是很好入门的:熟悉一个框架的使用:Yii、Symfony,国人用的多的thinkphp熟悉下MVC 的开发模式,这里可能和面向过程的开发,唯一的差别在于View层的开发。可以开始看一些设计模式的资料,能够使用oop的方式开发一些工具类或者使用一些工具类这样你php的oop基本上就算入门了。

think_ing 2019-12-02 02:43:35 0 浏览量 回答数 0

问题

Java OOP的主要概念是什么?

YDYK 2020-04-23 19:36:11 1 浏览量 回答数 1

问题

[@墨玖tao][¥20]想了解oop

1476843285041586 2019-12-01 19:21:50 459 浏览量 回答数 1

问题

JavaScript OOP编程 的优点在什么地方,还有诸如闭包的存在会不会加大页面的加载的负担呢,使用户交互变得很慢呢?

a123456678 2019-12-01 20:25:39 885 浏览量 回答数 1

回答

尽管这是真的,并且已经被其他人观察到(例如STL的发明者Stepanov),但其余的都是胡说八道。OOP可能有缺陷,它当然不是灵丹妙药,但是它使大规模应用程序变得简单得多,因为它是减少依赖关系的好方法。当然,这仅适用于“好的” OOP设计。马虎的设计不会带来任何优势。但是,好的分离设计可以使用OOP很好地建模,而不能使用其他技术很好地建模。

游客ufivfoddcd53c 2020-01-03 21:21:02 0 浏览量 回答数 0

回答

纠正一下,是OOP(面向对象编程Object Oriented Programming,OOP,面向对象程序设计),不是OPPC与C++的区别仅在于OPP吗?C与C++最大的区别在于OOPlinux 编程C++是不是么有C++接口,只是调用C接口吗?linux系统编程接口都是c接口。做linux c++编程,可以直接调用c接口。

muji318 2019-12-02 03:10:19 0 浏览量 回答数 0

问题

您什么时候应该,也不应该为了速度/性能而脱离OOP?

LiuWH 2020-01-23 13:19:56 0 浏览量 回答数 1

回答

aop是提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足,除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理 Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP 提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事物管理之上。允许用户实现自定义切面,用AOP来完善OOP的使用,可以把Spring AOP看作是对Spring的一种增强

游客pklijor6gytpx 2019-12-02 03:13:50 0 浏览量 回答数 0

回答

OOP的3大特性: 封装 继承 多态 用get/set是为了封装内部细节。

黄二刀 2020-05-28 14:39:35 0 浏览量 回答数 0

回答

http://php.net/manual/zh/language.oop5.late-static-bindings.php 后期静态绑定

星球华人 2019-12-02 01:44:55 0 浏览量 回答数 0

回答

Windows核心编程 深入研究OOP的编程思想 以及MFC的那些类的封装方式及原因 对于底层技术原理的掌握有助于提高你的编程素养

晚来风急 2019-12-02 01:23:05 0 浏览量 回答数 0

回答

Spring AOP(面向面编程)称赞OOP,因为它还提供模块化。在 OOP 中,关键单元是对象,但在 AOP 键单元中是方面或问题(只需在应用程序中假定独立模块)。某些方面具有集中代码,但其他方面可能会分散或纠结,例如日志记录或事务。这些分散的方面被称为跨领域的关注。跨领域问题是一个可能影响整个应用程序的问题,应该尽可能集中在代码中的一个位置,如事务管理、身份验证、日志记录、安全性等。 AOP 提供了使用简单可插拔配置在实际逻辑之前、之后或周围动态添加横切问题的方法。它便于在现在和未来维护代码。只需更改配置文件(如果您应用了应用采用 XML 配置的方面),即可添加/删除问题,而无需重新编译完整的源代码。 Spring AOP 可通过以下 2 种主要方法使用。但广泛使用的方法是弹簧方面J注释样式。 1)按方面J注释样式 2)由Spring XML 配置样式

YDYK 2020-04-26 08:46:14 0 浏览量 回答数 0

回答

AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切(cross cutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。 AOP技术恰恰相反,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。 使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。 AOP核心概念 1、横切关注点 对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点 2、切面(aspect) 类是对物体特征的抽象,切面就是对横切关注点的抽象 3、连接点(joinpoint) 被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器 4、切入点(pointcut) 对连接点进行拦截的定义 5、通知(advice) 所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类 6、目标对象 代理的目标对象 7、织入(weave) 将切面应用到目标对象并导致代理对象创建的过程 8、引入(introduction) 在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段 Spring对AOP的支持 Spring中AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC容器负责管理。因此,AOP代理可以直接使用容器中的其它bean实例作为目标,这种关系可由IOC容器的依赖注入提供。Spring创建代理的规则为: 1、默认使用Java动态代理来创建AOP代理,这样就可以为任何接口实例创建代理了 2、当需要代理的类不是代理接口的时候,Spring会切换为使用CGLIB代理,也可强制使用CGLIB AOP编程其实是很简单的事情,纵观AOP编程,程序员只需要参与三个部分: 1、定义普通业务组件 2、定义切入点,一个切入点可能横切多个业务组件 3、定义增强处理,增强处理就是在AOP框架为普通业务组件织入的处理动作 所以进行AOP编程的关键就是定义切入点和定义增强处理,一旦定义了合适的切入点和增强处理,AOP框架将自动生成AOP代理,即:代理对象的方法=增强处理+被代理对象的方法。

万立超 2019-12-02 01:01:51 0 浏览量 回答数 0

问题

[@talishboy][¥20]OOP 中的 组合、聚合和关联有什么区别?

李博 bluemind 2019-12-01 19:27:04 540 浏览量 回答数 1

回答

面向对象编程支持所有常见的 OOP 功能,如继承和多态性。它还没有内置对象。基于对象的编程不支持继承或多态性,并且确实有一些内置对象。

YDYK 2020-04-26 15:21:57 0 浏览量 回答数 0

回答

C和C++最大的区别当然是C++支持OOP,但是它们也有一些细节上的不同。比如C++支持模板、引用、命名空间等,C++ 11/14更是增加了Lambda表达式、类型推断、自动指针等等

杨冬芳 2019-12-02 03:10:18 0 浏览量 回答数 0

问题

请教各位大神PHP如何OOP?

落地花开啦 2019-12-01 19:53:35 2099 浏览量 回答数 2

回答

oop的本质啊,List>这个数据类型本质上是集合类型List,其中存放的元素是Map类型,当List> list = new ArrayList<>()时,,相当于在堆内存中开辟一块空间用来存放该种类型的数据,list变量指向这块内存

prochie 2019-12-02 01:34:20 0 浏览量 回答数 0

问题

如何在Perl中创建对象?

游客ufivfoddcd53c 2020-01-03 17:11:05 0 浏览量 回答数 1

问题

无法加载模块Index 错误位置如何解决,请高手帮忙操作我的数据库

luguoliang 2019-12-01 20:54:02 7071 浏览量 回答数 0

回答

这是PHP的动态绑定和静态绑定的一种情况。public是动态绑定,在编译期不绑定,所以在运行期调用父类的test()方法的时候,会解析为子类的public方法。而private是私有的,不会继承到子类,在编译期就绑定了,是一种“静态”的绑定(类似5.3后的self)。与这个相关的是LSB,静态延迟绑定,PHP5.3因为有了这个特性之后,使PHP的OOP得到加强。

落地花开啦 2019-12-02 02:42:16 0 浏览量 回答数 0

问题

协程与python中的类

一码平川MACHEL 2019-12-01 19:32:18 505 浏览量 回答数 1

回答

在Java中,OOP是一种与以下概念相关的编程样式: 继承:继承是一个类在其中获取另一类的属性的过程。 封装:Java中的封装是一种将数据和代码打包为单个单元的机制。 抽象:抽象是向用户隐藏实现细节并仅向用户提供功能的方法。 多态:多态是变量,函数或对象采取多种形式的能力。

YDYK 2020-04-23 19:37:18 0 浏览量 回答数 0

回答

不知道是不是问题。 手册中(四)OOP规约 第9条 提到可以用BigDecimal的equals方法比较浮点数等值,这个有问题的。 BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.10"); // 这个是false System.out.println(a.equals(b)); // 这个才是0 System.out.println(a.compareTo(b)); 踩过这个坑,equals根本不适用于判断等值,还是得用compareTo()方法

时光勿念 2020-05-08 17:20:54 0 浏览量 回答数 0

问题

scala OOP面向对象?

moduletek 2020-08-12 09:56:13 5 浏览量 回答数 1

回答

异常本来就是以类型为基础的PHP5开始, 可以对函数参数进行类型约束: http://php.net/manual/zh/language.oop5.typehinting.php<?php //如下面的类 class MyClass { /** * 测试函数 * 第一个参数必须为类OtherClass的一个对象 */ public function test(OtherClass $otherclass) { echo $otherclass->var; } /** * 另一个测试函数 * 第一个参数必须为数组 */ public function test_array(array $input_array) { print_r($input_array); } } //另外一个类 class OtherClass { public $var = 'Hello World'; }类型约束只支持对象 和 数组(php 5.1之后)两种类型。而不支持整型 和 字符串类型。

落地花开啦 2019-12-02 02:45:35 0 浏览量 回答数 0

回答

大致就是自己请求数据或者拿到数据不一样的原因。 由于支付宝给的接口demo是过程化,里面都是html和php混编。 在html头部都声明了字符集。 但是我在整合支付宝接口的时候需要将其改写为OOP模式,虽然我们的视图层都是做了utf8字符集声明的,但是有一个方法就是demo里面对应的alipayapi.php这个页面对应的方法(我将其命名为alipayapi方法)却是一个中间页面,没有对应的模版页面。 所以我忽视了在方法开头声明字符集,而导致了浏览器默认编码为gbk的用户在提交到这个方法的时候出现了错误。 原因就是所有的参数列表中不能有乱码,所以把这个页面设置下字符集即可! header("Content-type:text/html;charset=utf-8");

小六码奴 2019-12-02 02:02:52 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站