Tag: oop

多态 – 只定义两个句子

我已经看了其他的定义和解释,没有一个能让我满意。 我想看看是否有人可以用最多两个句子来定义多态,而不需要使用任何代码或例子。 我不想听到'所以你有一个人/汽车/开jar器'或这个词是如何派生的(没有人印象深刻,你知道什么聚和变体的意思)。 如果你对多态现象有很好的把握,并且掌握了很好的英语水平,那么你应该能够用一个简短而密集的定义来回答这个问题。 如果你的定义准确地定义了多态性,但是如此密集以至于需要几次读取,那么这就是我正在寻找的东西。 为什么只有两句话? 因为一个定义是短而智能的。 解释很长,包含示例和代码。 在这里寻找解释(这些网页上的答案不满意我的问题): 多态vs覆盖vs重载 尝试尽可能简单地描述多态性 我为什么问这个问题? 因为我被问到同样的问题,我发现我无法提出一个令人满意的定义(按照我的标准,这很高)。 我想看看这个网站的任何伟大的想法是否可以做到这一点。 如果你真的不能做出这两个句子的要求(这是一个很难定义的主题),那么如果你过去了,这是很好的。 这个想法是有一个定义,实际上定义什么多态性是什么,并不解释它做什么或如何使用它(得到的差异?)。

“低耦合和高凝聚力”是什么意思

我对理解low in coupling and high in cohesion的陈述有困难。 我已经search了很多关于这方面的知识,但仍然觉得很难理解。 我所理解的是High cohesion意味着我们应该有专门的课程去完成一个特定的function。 希望这是正确的? 就像专门用于validation信用卡的信用卡validation类一样。 而且还不明白Coupling是什么意思?

Java中序列化的目的是什么?

我已经阅读了很多关于序列化的文章,以及它如何如此美好和伟大,但是没有任何论据足够令人信服。 我想知道如果有人能真正告诉我,我们可以通过序列化一个类真正实现什么?

NodeJS中的JavaScript OOP:怎么样?

我习惯于Java中的传统OOP。 使用NodeJS在JavaScript中执行OOP的最佳做法是什么? 每个类是一个文件与module.export ? 如何创build类? this.Class = function() { //constructor? var privateField = "" this.publicField = "" var privateMethod = function() {} this.publicMethod = function() {} } 与(我甚至不知道这是否正确) this.Class = { privateField: "" , privateMethod: function() {} , return { publicField: "" publicMethod: function() {} } } 与 this.Class = function() {} this.Class.prototype.method = function(){} […]

有一个只有属性重构的类可以吗?

我有一个方法,需要30个参数。 我把参数放到一个类中,这样我就可以传入一个参数(类)到方法中。 在重构的情况下传递一个封装所有参数的对象是完全没问题的,即使它包含了所有的参数。

你将如何访问对象方法中的对象属性?

什么是“纯粹”或“正确”的方式来访问对象的方法,而不是一个getter / setter方法的对象的属性? 我知道从对象的外面你应该使用一个getter / setter,但是从内部你会做: Java的: String property = this.property; PHP: $property = $this->property; 或者你会做: Java的: String property = this.getProperty(); PHP: $property = $this->getProperty(); 原谅我,如果我的Java是一点点closures,这是一年以来,我用Java编程… 编辑: 看来人们正在假设我只谈论私有或受保护的variables/属性。 当我学习OO时,我被教导使用getter / setter来处理每一个属性,即使这个属性是公开的(实际上我被告知从不公开任何variables/属性)。 所以,我可能会从一个错误的假设开始。 看来回答这个问题的人可能就是说你应该有公共财产,那些不需要得到的人,那些违背了我所教导的和我在谈论的东西,虽然也许这需要被讨论为好。 这可能是一个不同的问题,虽然好主题…

为什么一个接口不能实现另一个接口?

我的意思是: interface B {…} interface A extends B {…} // allowed interface A implements B {…} // not allowed 我GOOGLE了,我发现这个 : implements表示定义接口方法的实现。 但是接口没有实现,所以这是不可能的。 然而,接口是一个100%的抽象类,抽象类可以实现接口(100%抽象类)而不用实现它的方法。 什么是定义为“接口”的问题? 具体而言, interface A { void methodA(); } abstract class B implements A {} // we may not implement methodA() but allowed class C extends B { void methodA(){} } interface […]

如何检查一个对象是否实现了一个接口?

如何检查一些类是否实现接口? 当有: Character.Gorgon gor = new Character.Gorgon(); 如何检查gor实现了Monster界面? public interface Monster { public int getLevel(); public int level = 1; } public class Character { public static class Gorgon extends Character implements Monster { public int level; @Override public int getLevel() { return level; } public Gorgon() { type = "Gorgon"; } } } 方法getLevel()在Gorgon正确覆盖,所以它可以返回创build的新gor […]

在Scala中有伴侣对象的基本原理是什么?

有没有一个类的伴侣对象(单身人士)的情况下需要? 为什么我要创build一个类,说Foo并为它创build一个伴侣对象?

学习/实现devise模式(适用于新手)

我是一个困惑的新手和爱好者程序员试图抓住这个,所以请原谅我,如果我的问题是有点closures或没有太大的意义。 我看到很多关于使用devise模式的问题,我想知道是否有人有足够的资源来学习和实现devise模式? 我了解一般的想法,并知道如何/何时使用他们几个(单身,工厂方法),但我知道我错过了。 (为了以防万一,我偏好的语言是C#,但我可以从其他语言的示例中学习)