Tag: oop

Mediator Vs Observer面向对象的devise模式

我一直在读“ 四人帮” ,以解决我的一些问题,并遇到调解员模式。 我曾经在我的项目中使用Observer来制作一些GUI应用程序。 我有点困惑,因为我没有发现两者之间的巨大差异。 我浏览find差异,但找不到我的查询任何答案。 有人能帮我区分这两者吗?

FP和OO是正交的吗?

我已经一次又一次地听到了,我正试图理解和validationFP和OO是正交的。 首先,两个概念是正交的意味着什么? FP鼓励尽可能的不变性和纯洁性,而OO似乎是为了状态和变异而build立的 – 一个稍微有组织的命令式编程版本? 我意识到对象可以是不可改变的,但是OO似乎意味着对我的状态/改变。 他们看起来像对立面。 这如何影响它们的正交性? 像Scala这样的语言可以很容易地做OO和FP,这是否会影响两种方法的正交性?

在Backbone中访问父类

我需要从inheritance的MyModel类中调用父类的initialize方法,而不是像我今天所做的那样完全覆盖它。 我怎么能这样做? 以下是我的代码现在看起来: BaseModel = Backbone.Model.extend({ initialize: function(attributes, options) { // Do parent stuff stuff } }); MyModel = BaseModel.extend({ initialize: function() { // Invoke BaseModel.initialize(); // Continue doing specific stuff for this child-class. }, });

我何时必须使用接口而不是抽象类?

我想知道什么时候应该使用接口。 让我们思考以下几点: public abstract class Vehicle { abstract float getSpeed(); } 和: public interface IVehicle { float getSpeed(); } 我可以很容易地实现他们两个,他们有相同的function…但我也可以添加一些variables,我的车辆类,这可能应该用在车辆(maxSpeed,carType …) 什么是使用接口的原因? 谢谢! 编辑:我发现了另一个线程中的一个不错的链接: http : //www.thecoldsun.com/en/content/01-2009/abstract-classes-and-interfaces

一个类只有静态字段和方法是不好的做法?

我有一个只包含静态成员variables和静态方法的类。 本质上,它是一个通用的实用类。 一个类只包含静态成员variables和静态方法是不好的做法?

多态性的好处

当我开始寻找多态的好处时,我在这里find了这个问题。 但在这里我无法find我的答案。 让我告诉我想find什么。 在这里我有一些类: class CoolingMachines{ public void startMachine(){ //No implementationion } public void stopMachine(){ //No implementationion } } class Refrigerator extends CoolingMachines{ public void startMachine(){ System.out.println("Refrigerator Starts"); } public void stopMachine(){ System.out.println("Refrigerator Stop"); } public void trip(){ System.out.println("Refrigerator Trip"); } } class AirConditioner extends CoolingMachines{ public void startMachine(){ System.out.println("AC Starts"); } public void stopMachine(){ […]

你如何在大海捞针中find针?

当以面向对象的方式执行大海捞针search时,您基本上有三种select: 1. needle.find(haystack) 2. haystack.find(needle) 3. searcher.find(needle, haystack) 你更偏向于哪个,为什么? 我知道有些人更喜欢第二种select,因为它避免了引入第三个对象。 然而,我不禁感觉到,第三种方法在概念上更“正确”,至less你的目标是build模“现实世界”。 在这种情况下,您认为引入帮助对象(如本例中的search者)是合理的,何时应该避免?

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

大多数主stream语言,包括面向对象编程(OOP)语言,例如C#,Visual Basic,C ++和Java,都被devise为主要支持命令式(过程式)编程,而Haskell / gofer式语言则是纯粹的function。 有人可以详细说明这两种编程方式有什么区别吗? 我知道这取决于用户要求select编程的方式,但为什么build议学习函数式编程语言?

何时实施和延期?

什么时候应该implement或者extend使用? 什么是现实世界的例子? 它是否正确? 实现似乎是强制在类中存在某些方法的方法,并且这些方法函数调用的格式正确。 实现不是一种将variables或“设置”传递给类的方法吗? 预期的实际情况:我有一个电子商务平台,具有多个支付类别,都遵循相同的devise。 当添加新的付款类别时,可以很容易地遵循interface的定义devise,从一开始就确保所有零碎件都存在。 扩展类使得扩展(child?)类inheritance了除父类以外的所有内容,除了声明为private方法和variables外? 预期的现实生活场景:我有一个叫做sessions类,它有两个名为sessioncookies和databasesessions子类。 sessioncookies和databasesessions会话一起inheritance父会话中的许多相互configuration选项,使得更改configuration选项以轻松影响各种最终的访问者数据存储容易。

聚合与组合

我很难理解UML中的组合和聚合之间的区别。 有人能给我一个很好的比较和对比吗? 我也喜欢学习识别代码之间的区别和/或看到一个简短的软件/代码示例。 编辑:我所要求的部分原因是因为我们在工作中做了反向文档活动。 我们已经编写了代码,但是我们需要返回并为代码创build类图。 我们只是想正确地捕捉这些关联。