oop相关内容

我的“这个"在哪里?使用对象方法作为回调函数

我有一个关于 javascript 规范或函数指针(委托?)的实现的一般问题,这些指针指向对象方法. 请阅读以下代码片段.这里我们有一个带有方法的对象,使用“this"来访问对象字段.当我们像往常一样调用这个方法(o.method();)时,返回对象的指定字段的值.但是当我们创建指向这个方法的指针(回调)并调用它时,返回一个未定义的值,因为方法范围内的“this"现在是全局对象. var ..
发布时间:2022-01-03 08:25:09 前端开发

C++ 的面向对象回调?

是否有一些库可以让我在 C++ 中轻松方便地创建面向对象的回调? 例如,Eiffel 语言具有“代理"的概念,其工作方式或多或少是这样的: class Foo{上市:酒吧*酒吧;富(){酒吧 = 新酒吧();bar->publisher.extend(agent say(?,"Hi from Foo!", ?));bar->invokeCallback();}说(字符串 strA,字符串 ..
发布时间:2022-01-03 08:23:10 C/C++开发

在objective-c中应该如何实现私有成员和公共成员?

我有一些关于在工作中使用属性和实例变量的讨论,因此我想为此找到一个 wiki 答案.现在,我知道在objective-c 中没有真正的私有成员类型,一切都是公开的.然而,我有点担心我们应该如何设计我们的类以及遵守 OOP 原则.我想听听这三种设计方法的意见: A.根据各种帖子甚至是斯坦福大学的新 iPhone 开发课程,您应该始终在任何地方使用属性.然而恕我直言,这种方法阻碍了 OOP 设计 ..
发布时间:2022-01-02 18:47:53 移动开发

通过访问器或直接访问同一类中的属性的最佳方法是什么?

这是我不太一致的事情,并且总是对其他人的行为感到好奇. 您如何访问内部属性(私有或公共)? 例如你有这个属性: Private _Name As String公共属性名称()作为字符串得到返回_名称结束获取Set(ByVal value As String)_名称 = 值结束集最终财产 在另一个函数的同一个类中,你更喜欢哪个?为什么? _Name = "Johnny" 或 N ..
发布时间:2022-01-02 18:35:04 C#/.NET

在 VB6 中,Property Set 和 Property Let 有什么区别?

我刚刚创建了几个 Property Set 方法,但它们没有编译.当我将它们更改为 Property Let 时,一切都很好. 从那以后我研究了文档以找出 Property Set 和 Property Let 之间的区别,但必须承认自己并不聪明.有什么区别吗,如果有的话,有人可以提供一个正确解释的指针吗? 解决方案 Property Set 适用于对象(例如,类实例) Pro ..
发布时间:2022-01-02 18:24:48 其他开发

NHibernate:一个基类,几个映射

我对 NHibernate 比较陌生,但是最近几个程序一直在使用它,我爱上了它.我遇到了一种情况,我需要将 4-5 个数据库中的数据聚合到一个数据库中.具体是序列号数据.每个数据库都会有自己的映射文件,但最终实体都共享相同的基本结构(Serial 类). 我知道 NHibernate 需要每个类的映射,所以我最初的想法是有一个基本的 Serial 类,然后为每个不同的数据库继承它并创建一个唯 ..
发布时间:2022-01-02 16:06:19 C#/.NET

建模一对零或一关系(Z 基数)

我正在努力寻找建模 1 : 0,1 关系的最佳方法(“可能有一个"或“最多有一个").我相信这称为 Z 基数. 例如,假设我有两个类 Widget 和 WidgetTest.并非所有 Widget 都经过测试,而且该测试具有破坏性,因此每个 Widget 最多可以有一个 WidgetTest.还假设将 WidgetTest 字段添加到 Widget 中是不合适的. 我希望我的公共界面是 ..
发布时间:2022-01-02 15:49:48 其他开发

为什么 smalltalk 不是函数式编程语言?

随着对函数式编程语言的重新兴趣,我看到 Smalltalk 和 FPL 之间的一些相似之处,即闭包(Smalltalk 中的 BlockClosures) 然而,Smalltalk 不是 FPL? 需要什么来考虑它? 解决方案 使用面向对象范式编程是通过将问题域实体识别和建模为对象来创建程序,然后让它们彼此协作以解决每个问题实例.使用函数范式编程是将问题建模为数学问题,并创建一个数学 ..

函数式编程:状态与重新分配

我需要帮助弄清楚我当前的 OOP 状态概念与在 Haskell 或 Clojure 等函数式语言中实现的方式之间的差异. 举一个老生常谈的例子,假设我们正在处理简化的银行账户对象/结构/任何东西.在 OOP 语言中,我有一些类持有对 BankAccount 的引用,该类将具有诸如利率之类的实例变量,以及诸如 setInterestRate() 之类的方法,它们更改对象的状态并且通常不返回任何 ..

纯函数式编程上下文中的面向对象编程?

在函数式编程 (FP) 上下文中使用面向对象编程 (OOP) 有什么优势吗? 我已经使用 F# 有一段时间了,我注意到我的函数越是无状态,我就越不需要将它们作为对象的方法.特别是,依靠类型推断使其在尽可能多的情况下可用是有好处的. 这并不排除需要某种形式的命名空间,这与 OOP 是正交的.也不鼓励使用数据结构.事实上,真正使用 FP 语言很大程度上依赖于数据结构.如果您查看在 F Sh ..
发布时间:2022-01-02 13:56:03 其他开发

为什么 Haskell 代数数据类型是“封闭的"?

如果我错了,请纠正我,但 Haskell 中的代数数据类型似乎在许多情况下很有用,您将在 OO 语言中使用类和继承.但是有一个很大的区别:代数数据类型一旦声明,就不能扩展到其他地方.它是“封闭的".在 OO 中,您可以扩展已经定义的类.例如: data 也许 a = 无 |只是一个 我无法在不修改此声明的情况下稍后以某种方式向此类型添加另一个选项.那么这个系统有什么好处呢?面向对象的方式似乎更 ..
发布时间:2022-01-02 13:55:36 其他开发

FP 和 OO 是正交的吗?

我一次又一次地听到这种说法,我试图理解和验证 FP 和 OO 是正交的想法. 首先,两个概念正交是什么意思? FP 尽可能地鼓励不变性和纯度,而 OO 似乎是为状态和突变而构建的——命令式编程的一个稍微有组织的版本?我意识到对象可以是不可变的,但 OO 似乎对我暗示了状态/变化. 他们似乎是对立的.这如何影响它们的正交性? 像Scala这样的语言让OO和FP都可以轻松搞定, ..

函数式编程语言和命令式编程语言有什么区别?

大多数主流语言,包括面向对象的编程 (OOP) 语言,例如 C#、Visual Basic、C++ 和 Java,旨在主要支持命令式(过程)编程,而 Haskell/gofer 之类的语言则是纯函数式的.任何人都可以详细说明这两种编程方式之间的区别是什么? 我知道选择编程方式取决于用户的需求,但为什么建议学习函数式编程语言? 解决方案 定义:命令式语言使用一系列语句来确定如何达到某个 ..
发布时间:2022-01-02 13:54:03 其他开发

闭包:为什么它们如此有用?

作为 OO 开发人员,我可能很难看到它的价值.他们提供了什么附加价值?它们适合面向对象的世界吗? 解决方案 闭包不会给你任何额外的力量. 有了它们你可以实现的任何事情,没有它们也能实现. 但是它们对于使代码更清晰易读非常有用.众所周知,干净可读的短代码是一种更易于调试且包含更少错误的代码. 让我给您简短的 Java 示例,说明可能的用法: button.addActi ..
发布时间:2022-01-02 13:44:43 其他开发

为什么要避免子类型化?

我在 Scala 社区中看到很多人建议避免“像瘟疫一样"使用子类型.反对使用子类型的各种原因是什么?有哪些替代方案? 解决方案 类型决定了组合的粒度,即可扩展性. 例如,一个接口,例如Comparable,它结合了(因此混为一谈)等式和关系运算符.因此,不可能只在相等或关系接口之一上进行组合. 一般来说,继承的替代原则是不可判定的.罗素悖论意味着任何可扩展的集合(即不枚举每个可 ..

什么是 Javascript 中的多态性?

我已经阅读了一些我可以在互联网上找到的关于多态性的可能的文章.但我想我不能完全理解它的含义和重要性.大多数文章没有说明为什么它很重要以及我如何在 OOP 中(当然在 JavaScript 中)实现多态行为. 我无法提供任何代码示例,因为我不知道如何实现它,所以我的问题如下: 是什么? 我们为什么需要它? 它是如何工作的? 如何在 javascript 中实现这种多态行为? ..

AngularJS 的面向对象方法

似乎 Angular 没有提供内置的解决方案来定义具有属性和方法的类实例,而由开发人员来构建它. 您认为执行此操作的最佳做​​法是什么?如何将其与后端链接? 我收集的一些技巧使用了工厂服务和命名函数. 来源:教程 1教程 2 感谢您的见解 解决方案 我认为最接近 Object 的结构可能是 factory,原因如下: 基本语法: .factory('myFa ..
发布时间:2022-01-02 09:36:42 前端开发

在 OO 模型中添加双向关系的最佳实践

我正在努力想出一种在 OO 模型中添加双向关系的好方法.假设有一个 Customer 可以下许多 Orders,也就是说 Customer 和 Order 类之间存在一对多关联,需要双向遍历:对于特定的客户,应该可以告诉所有他们下的订单,对于一个订单,应该可以告诉客户. 这里是一段 Java 代码,尽管问题在很大程度上与语言无关: class 客户 {私有集合订单 = 新的 HashSet ..
发布时间:2022-01-02 09:31:13 Java开发

DDD - 持久性模型和领域模型

我正在尝试学习领域驱动设计 (DDD),并且我想我已经掌握了基本思想.但有件事让我感到困惑. 在 DDD 中,持久模型和域模型是不同的东西吗?我的意思是,我们设计我们的领域和类时只考虑领域问题;没关系.但是在那之后,当我们构建我们的存储库或任何其他数据持久性系统时,我们是否应该为我们的模型创建另一个表示以在持久层中使用? 我认为我们的领域模型也用于持久性,这意味着我们的存储库从查询中返 ..