问题标签 [mutators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
92 浏览

oop - 您将获取和设置的函数称为什么?

jQuery 框架有很多函数可以根据传递的参数检索或改变值:

有这样行为的函数的标准名称吗?

0 投票
2 回答
201 浏览

c++ - C++程序设计题

在我最近参与的几个项目中,我几乎沉迷于以下编码模式:(我不确定是否有合适的名称,但无论如何......)

假设某个对象处于某个确定的状态,我们不想从外部更改此状态。这些更改可能意味着任何行为,可能调用任何算法,但事实是它们专注于更改某些对象的状态(成员状态、数据状态等)

让我们将改变这些对象的一种离散方式称为 a Mutator(通常)Mutators应用一次,并且它们具有一些内部方法,例如,它会立即引发更改对象的状态(实际上,它们是某种功能对象)。apply(Target& target, ...)

它们也可以很容易地被同化成并一个一个地应用(Mutator m1, m2, ...);它们也可以从一些基本BasicMutator的 withvirtual void apply(...)方法中派生出来。

我已经介绍了被调用的类InnerMutatorExplicitMutator它们在访问方面有所不同——首先它们也可以改变对象的内部状态,并且应该被声明为友元(friend InnerMutator::access;)。


在这些项目中,我的逻辑变成了以下方式:

  1. 准备可用的突变器,选择要应用的突变器
  2. 创建并将其设置object为某个确定的状态
  3. foreach (mutator) mutator.apply(object);

现在的问题。

该方案运行良好,并且 (对我而言)似乎是一些非标准但有用的设计模式的示例。

让我感到不舒服的是那些InnerMutator东西。我不认为将 mutator 声明为每个可以更改状态的对象的朋友是一个好主意,我不想找到合适的替代方案。

这种情况可以解决Mutators吗?或者您可以建议一些具有相同结果的替代模式吗?

谢谢。

0 投票
4 回答
64512 浏览

python - 附加将我的列表变为 NoneType

在 Python Shell 中,我输入:

并得到

但是当我尝试时:

并得到

有谁知道发生了什么?我该如何解决/解决它?

0 投票
2 回答
824 浏览

python - 如果语句不起作用,按字母顺序排序

下面的 if 语句在某处有问题,我无法弄清楚。任何可能导致其无法正常运行的约定或方法滥用?checkList 是用户输入的句子,而 lis 是一个大的单词列表。

0 投票
9 回答
1629 浏览

c++ - 提供非常量引用 getter 是否有意义

有时我需要暴露一些班级成员。例如在下面的例子中class Mechanic可能需要直接访问Engine组件。我读过很多次,由于几个原因,所有字段都应该由 mutator(访问器)方法访问。但是在提供非常量引用 getter 时是否有任何优势:

简单地将引擎组件公开:

如果您不喜欢此示例,也可以替换public为。protected在现实生活中,当涉及到System.inSystem.out. 看起来,要完全遵守某些人的说法,您需要执行类似System.getInstance().getOut().println("hello world"). 在这种情况下,除了大量的官僚代码之外,我没有看到任何好处。

0 投票
1 回答
311 浏览

objective-c - 仅当 mutators 在 Objective-C 属性中保持私有时才公开访问器

假设我有一个带有一些实例变量的类,我想通过 Dot Notation Property 公开这些 i-var 以供“只读”使用,但同时能够在我的类中使用 Property Mutator,也与点符号。

问题是,我在我的 .h 文件中声明如下:

然后,即使我自己编写了 mutator ( -(void) setMyIvar:),我也不能将它与点表示法一起使用,因为编译器正在(正确地)抱怨该属性是只读的。

我试图在我的 .m 文件(在接口扩展名内)中重新声明该属性,如下所示:

但是编译器不接受这种双重声明。

有什么办法可以做到吗?

0 投票
2 回答
6986 浏览

class - 使用访问器和修改器编写一个简单的类

我是 Java 的新手。我被要求为一个名为 Course 的非常简单的 Course 类编写一个 java 类,它具有数据成员名称和学分(例如“Programming and Logic I”,4)。您的类需要包含每个属性的访问器(即 get)和 mutator(即 set)方法,以及至少一个重载构造函数,用于初始化数据成员名称和学时。

这是我到目前为止所拥有的,但我相信我离得太远了,我的大脑现在不想工作。

0 投票
1 回答
82 浏览

java - 无法将 java 方法组合到一个主要方法中

我已经有以下内容:

下面的这部分是我遇到一些麻烦的地方:

它只是将这些我遇到的麻烦结合起来。

0 投票
2 回答
642 浏览

java - 用循环构造的东西上的 Java mutator 方法

所以我有一个用循环构造的类。在构造函数中,我有两个 while 循环,它们构成了圆圈的“网格”。它应该是上课用的围巾,但我称它为锁子甲,因为这听起来更酷。无论如何,我们应该能够用不同的(客户端)类来改变围巾的颜色。我显然需要添加一个 mutator 方法来改变颜色。幸运的是,在 objectdraw 中有一个称为 setColor() 的 mutator。它工作得很好,除了当我尝试将它添加到这个类时,它只会改变网格中的最后一个圆圈。我知道为什么会发生这种情况,但我不知道如何解决它。我已经注释掉了我们在课堂上使用的“典型”突变体。

编辑:对不起,混乱的家伙......这只是班级,我有一个客户调用 new ChainMail() 然后对其执行 .setColor() 但它只更改最后一个 framedoval 而不是所有这些。那就是问题所在

0 投票
3 回答
3415 浏览

c++ - 父返回子中的 C++ 函数

我想让我的类中的变异器(设置器)返回this以允许像 jQuery 一样a.name("something").address("somethingelse"); 我有一个父类(Entity)和几个子类( Client, Agent etc.)。大多数事物的修改器是从Entity类继承的(如名称或地址),但它们返回一个Entity对象,所以我不能在它们上调用客户端修改器。

换句话说:

然后当我调用它时:

编译器(逻辑上)说,Entity 对象没有budgetRange 成员(因为name 返回的是Entity,而不是Client)。

我现在的问题是:我怎么能实现这样的东西?我考虑过重载子类中的所有实体函数,但这不会很好,而且会违背继承的想法:)

提前感谢您的想法:D