相关疑难解决方法(0)

你能解释一下Context设计模式吗?

我开始阅读有关Context设计模式的内容.这是我从文中理解的内容:

  • 你有一个包含所有变量的地图

  • 你将它传递给任何需要它的人,这样你就不必将所有变量作为方法参数发送

我得到了吗?

language-agnostic design-patterns

48
推荐指数
2
解决办法
4万
查看次数

什么时候在Ruby中使用Struct而不是Hash更好?

Ruby Struct允许使用一组访问器生成实例:

# Create a structure named by its constant
Customer = Struct.new(:name, :address)     #=> Customer
Customer.new("Dave", "123 Main")           #=> #<Customer name="Dave", address="123 Main">
Run Code Online (Sandbox Code Playgroud)

这看起来既方便又强大,但Hash做了类似的事情:

Customer = {:name => "Dave", :address => "123 Main"}
Run Code Online (Sandbox Code Playgroud)

什么是真实世界的情况,我应该更喜欢结构(和为什么),以及选择一个在另一个上的警告或陷阱是什么?

ruby

47
推荐指数
5
解决办法
8109
查看次数

什么是Vuex"上下文"对象?

我试图更好地理解Vuex中的"上下文"对象是什么.

所述上下文对象在Vuex文档中提及无数次.例如,在https://vuex.vuejs.org/en/actions.html中,我们有:

操作处理程序接收一个上下文对象,该对象在商店实例上公开同一组方法/属性,因此您可以调用context.commit来提交变异...

我理解如何使用它,并且我们可以使用解构,如果我们只想使用来自上下文对象的"提交",但希望更深入一点,这样我就能更好地理解发生了什么.

首先,我在"上下文对象"上发现了一对~8.5岁的帖子作为模式: 什么是上下文对象设计模式?并且 你能解释一下背景下设计模式?

但是,特别是Vuex,我希望更好地理解:

  1. 什么是上下文对象/它的目的是什么?
  2. 在Vuex中可以使用的所有属性/方法是什么?

谢谢!

vue.js vuex vuejs2

20
推荐指数
2
解决办法
6407
查看次数

方法重构:从许多kwargs到一个arg-object

有时,方法的kwargs数量会增加到我认为应该重构的水平.

例:

def foo(important=False, debug=False, dry_run=False, ...):
    ....
    sub_foo(important=imporant, debug=debug, dry_run=dry_run, ...)
Run Code Online (Sandbox Code Playgroud)

我目前的首选解决方案

class Args(object):
    ...

def foo(args):
    sub_foo(args)
Run Code Online (Sandbox Code Playgroud)

第一个问题:如何打电话Args?有一个众所周知的描述或设计模式?

第二个问题:Python是否有我可以用作基类的东西Args

更新

我从13年开始每天使用Python工作.我使用了许多kwargs的方法,并用许多kwargs编写了方法.在过去的几周里,读了一本书"干净的代码",我喜欢它.不知怎的,就像现在戴着另一副眼镜一样.我的旧代码有效,但看起来并不好.将长方法拆分成几种较小的方法很容易.但我不知道如何处理kwargs-bloat的方法.

python refactoring design-patterns

5
推荐指数
1
解决办法
416
查看次数