我最近遇到了关于如何在Node.js中编写单例的文章。 我知道require的文档说: 模块在第一次加载后被caching。 多次调用require('foo')可能不会导致模块代码被多次执行。 所以看起来,每个需要的模块都可以很容易地使用一个单例,而不需要单独的样板代码。 题: 上面的文章是否提供了创build单例的解决scheme?
我正试图了解如何实现button和其他视图的“纹波效果 – 触摸反馈”。 我看了一下SO上Ripple touch效果的问题,并对其进行了一些了解。 我能够使用这个Java代码成功地获得连锁反应。 import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.RadialGradient; import android.graphics.Region; import android.graphics.Shader; import android.support.annotation.NonNull; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.animation.AccelerateInterpolator; import android.widget.Button; public class MyButton extends Button { private float mDownX; private float mDownY; private float mRadius; private Paint mPaint; public MyButton(final Context […]
我一直认为,大开关语句是不良OOPdevise的一个症状。 过去,我已经阅读了一些讨论这个话题的文章,他们提供了基于OOP的方法,通常基于多态来实例化正确的对象来处理这个问题。 我现在处于一种基于来自TCP套接字的数据stream的怪异开关语句的情况,其中协议基本上由换行符终止的命令组成,接着是数据行,随后是结束标记。 该命令可以是100个不同的命令之一,所以我想find一种方法来减less这个怪物开关语句更可pipe理。 我已经做了一些search,以find我记得的解决scheme,但不幸的是,谷歌已经成为许多种查询这些天无关结果的荒原。 有这种问题的模式吗? 任何可能的实施build议? 一个想法是使用字典查找,将命令文本匹配到要实例化的对象types。 这具有很好的优点,只需创build一个新的对象并在表中插入一个新的命令/types就可以获得任何新的命令。 但是,这也有types爆炸的问题。 我现在需要100个新的类,再加上我必须find一种方法来将它们干净地连接到数据模型。 “一个真正的转换声明”是否真的要走? 我会感激你的想法,意见或评论。
我对访客模式及其用途感到困惑。 我似乎无法想象使用这种模式或其目的的好处。 如果有人能够用可能的例子来解释,那就太棒了。 =) 提前致谢
C#编译器要求每当自定义types定义运算符== ,它也必须定义!= (请参见此处 )。 为什么? 我很想知道为什么devise者认为这是必要的,为什么当编译器只有对方存在的时候,编译器为什么不能默认合理的实现呢? 例如,Lua只允许你定义相等运算符,而你可以免费获得另一个。 C#可以通过要求你定义==或者==和!=然后自动编译缺less的!=运算符为!(left == right) 。 我知道有些奇怪的angular落案例,其中一些实体可能既不平等也不平等(如IEEE-754 NaN's),但是那些看起来是例外而非规则。 所以这并不能解释为什么C#编译器的devise者将这个规则作为例外。 我已经看到平等运算符定义不好的情况下,那么不平等运算符就是一个复制粘贴,每一个比较都是相反的,每一个&&切换到一个||。 (你明白了……基本上(a == b)通过De Morgan规则扩展了)。 这是一个糟糕的做法,编译器可以通过devise来消除,就像Lua一样。 注意:对于运算符<> <=> =也是一样。 我无法想象你需要以非自然的方式来定义这些情况。 Lua让你自然地定义<和<=,并定义> =和>自然地通过前人的否定。 为什么C#不这样做(至less默认是')? 编辑 显然有一些正当理由可以让程序员对他们喜欢的平等和不平等进行检查。 有些答案指出,这可能是很好的情况。 但是,我的问题的核心是为什么这是在C#中强制要求通常不是在逻辑上是必要的? 与Object.Equals , IEquatable.Equals IEqualityComparer.Equals等deviseselect形成鲜明对比的是,缺lessNotEquals对象表明框架认为!Equals()对象是不平等的,就是这样。 而且像Dictionary这样的类和像.Contains()这样的方法完全依赖于前面提到的接口,即使定义了,也不直接使用操作符。 实际上,当ReSharper生成相等成员时,它根据Equals()定义了==和!= ,并且只有在用户select生成运算符的时候。 理解对象平等的框架不需要相等运算符。 基本上,.NET框架并不关心这些操作符,它只关心几个Equals方法。 要求用户同时定义==和!=运算符的决定完全与.NET的语言devise和对象语义有关。
我使用rails 3.2和devise2.0,我很新的Rails。 要求 我想达到以下目的: 有2个或更多的“用户”模型,例如。 会员,客户,pipe理员 所有模型共享一些必填字段(例如电子邮件和密码) 每个模型可能有一些独特的领域(例如,仅限于客户的公司) 一些字段可能会被共享,但是不具有相同的validation(例如,客户需要名称,但是会员可选) 在注册过程中必须填写所有的字段,所以表格是不同的 login表单应该是唯一的 可能的解决scheme 我search了很长一段时间searchStackOverflow,但没有什么似乎对我来说(我是一个Java的人,对不起:)现在我很困惑。 两个解决scheme来了: 单个devise用户 这是最常见的答案。 只需创build默认的devise用户,并在成员 – >用户和客户 – >用户之间build立关系。 我关心的是如何为每个模型实现定制的注册过程? 我尝试了不同的东西,但都是一塌糊涂! 多个devise用户 这解决了自定义注册过程,似乎对我来说,但唯一的login表单是一个阻碍。 我find了一个答案( devise – 从两个模型login ),这build议覆盖devise::模型:: Authenticatable.find_for_authentication(条件)。 这似乎很复杂(?),因为我是新来的铁轨,我想知道这是否可以工作? 谢谢你的build议!
我正在尝试使用WinForms首次实现MVP方法。 我想了解每一层的function。 在我的程序中,我有一个GUIbutton,点击时打开一个openfiledialog窗口。 因此,使用MVP,GUI处理button单击事件,然后调用presenter.openfile(); 在presenter.openfile()中,是否应该将该文件的开放委托给模型层,或者由于没有要处理的数据或逻辑,是否应该简单地处理请求并打开openfiledialog窗口? 更新:我决定提供一个赏金,因为我觉得我需要进一步的帮助,最好是针对我下面的具体要点,以便我有背景。 好吧,在阅读MVP之后,我决定实施被动观点。 实际上,我将在Winform上有一堆控件,由Presenter处理,然后委托给Model(s)。 我的具体观点如下: 当winform加载时,它必须获得一个树形视图。 我认为视图应该调用一个方法,如:presenter.gettree(),这反过来将委托给模型,它将获取树视图的数据,创build并configuration它,返回到主持人,这反过来会传递到视图,然后将其简单地分配给一个面板? 这将是相同的任何数据控件的Winform,因为我也有一个datagridview? 我的应用程序,有相同的程序集的许多模型类。 它还支持插件体系结构,需要在启动时加载插件。 该视图是否会简单地调用一个演示者方法,然后调用一个方法来加载插件并在视图中显示信息? 然后哪个层将控制插件引用。 视图是否会引用他们或主持人? 我是否认为视图应该处理关于表示的每一件事情,从treeview节点的颜色,到datagrid的大小等? 我认为他们是我主要关心的问题,如果我理解这些stream程应该如何,我想我会没事的。
我的要求是: 需要能够dynamic添加任何数据types的用户定义字段 需要能够快速查询UDF 需要能够根据数据types对UDF进行计算 需要能够根据数据types对UDF进行sorting 其他信息: 我正在寻找性能 有几百万个Masterlogging可以附带UDF数据 上次检查时,我们目前的数据库中有超过5000万个UDFlogging 大多数情况下,UDF只附加在几千条主logging上,而不是全部 UDF不被连接或用作键。 他们只是用于查询或报告的数据 选项: 用StringValue1,StringValue2 … IntValue1,IntValue2 …等创build一个大表。我讨厌这个想法,但会考虑,如果有人可以告诉我,它比其他想法和原因好。 创build一个dynamic表格,根据需要添加新的列。 我也不喜欢这个想法,因为除非你为每一列编制索引,否则性能会很慢。 创build一个包含UDFName,UDFDataType和Value的表。 当一个新的UDF被添加时,生成一个视图,只拉取这些数据,并将其parsing成指定的types。 不符合parsing条件的项目返回NULL。 创build多个UDF表,每个数据types一个。 所以我们有UDFStrings,UDFDates等表。可能会做同样的#2和自动生成一个视图任何时候添加一个新的字段 XML数据types? 之前我没有和他们合作过,但是看过他们提到过。 不知道他们是否会给我我想要的结果,尤其是在performance方面。 别的东西?
我正在开始一个新项目,希望从一开始就让我的表和列名称。 例如,我总是在表名中使用复数,但最近学到的单数是正确的。 所以,如果我有一个“用户”表,然后我得到的产品,只有用户将有,如果表名为“user_product”或只是“产品”? 这是一对多的关系。 更进一步说,如果我有(出于某种原因)每个产品的几个产品描述,它会是“user_product_description”或“product_description”或只是“描述”? 当然,正确的外键设置..命名它只描述会有问题,因为我也可以有用户的描述或帐户描述或任何.. 那么如果我想要一个只有两列的纯关系表(多对多),那么这将是什么样子呢? “user_stuff”或者像“rel_user_stuff”? 如果是第一个,那么会区分这个,例如“user_product”? 任何帮助,高度赞赏,如果有某种forms的命名约定标准那里你们推荐,随意链接。 谢谢
我一直想知道Facebook如何devise好朋友关系。 我认为用户表是这样的: user_email PK user_id PK password 我用桌面上的用户数据(性别,年龄等通过用户电子邮件连接,我会假设)。 它如何将所有的朋友连接到这个用户? 像这样的东西? user_id friend_id_1 friend_id_2 friend_id_3 friend_id_N 可能不会。 由于用户数量未知并将扩大。