我已经把GOF坐在了我的桌子上,我知道必须有某种devise模式来解决我遇到的问题,但是我无法解决这个问题。 为了简单起见,我改变了我使用的一些接口的名字。 所以这里的问题,在电线的一侧,我有多个服务器发送不同types的消息。 另一方面,我有一个客户端,需要能够处理所有不同types的消息。 所有消息实现相同的通用接口IMessage。 我的问题是,当客户端得到一个新的IMessage,它是如何知道它收到的IMessagetypes? 我想我可以做下面的事情,但这只是感觉糟糕。 TradeMessage tMessage = newMessage as TradeMessage; if (tMessage != null) { ProcessTradeMessage(tMessage); } OrderMessage oMessage = newMessage as OrderMessage; if (oMessage != null) { ProcessOrderMessage(oMessage); } 第二个想法是将一个属性添加到名为MessageTypeID的IMessage中,但是这需要我写下如下内容,这也是FEEL可怕的。 TradeMessage tMessage = new TradeMessage(); if (newMessage.MessageTypeID == tMessage.MessageTypeID) { tMessage = newMessage as TradeMessage; ProcessTradeMessage(tMessage); } OrderMessage oMessage = new […]
例 我有Person , SpecialPerson和User 。 Person和SpecialPerson只是人 – 他们在网站上没有用户名或密码,但是他们被存储在数据库中以备logging。 用户具有与Person相同的数据以及潜在的SpecialPerson ,以及在网站上注册的用户名和密码。 你将如何解决这个问题? 你是否有一个Person表,它存储了一个Person共有的所有数据,并使用一个键在SpecialPerson (如果他是一个特殊的人)和User(如果他们是一个用户)查找他们的数据,反之亦然?
对C ++开发人员来说,这看起来很奇怪。 在C ++中,我们用一个参数标记为const ,以确保它的状态不会在方法中改变。 还有其他C ++特定的原因,比如传递const ref以便通过ref传递,并确保状态不会被改变。 但为什么我们不能在C#中标记为方法参数const? 为什么我不能像以下声明我的方法? …. static void TestMethod1(const MyClass val) {} …. static void TestMethod2(const int val) {} ….
比方说,你有一个表的订单与客户ID的外键。 现在,假设你想添加一个没有客户ID的订单(是否应该是另一个问题),你将不得不使外键为NULL …是不好的做法,还是宁愿使用链接表订单和客户? 尽pipe关系是1到n,但链接表会使它成为n到n。 另一方面,用链接表,我没有那些NULLS了… 在数据库中实际上不会有太多的NULL,因为外部键值为NULL的logging只是暂时的,直到添加了订单的客户。 (在我的情况下,这不是一个订单和一个客户)。 编辑:未分配的客户链接到什么?
我正在做一个使用Rails的单页应用程序。 login和注销Devise控制器使用ajax调用。 我得到的问题是,当我1)login2)注销然后再次login不起作用。 我认为这与CSRF令牌有关,当我退出时它会被重置(尽pipe它不应该是错误的),并且由于它是单页,因此旧的CSRF令牌正在xhr请求中发送,从而重置会话。 更具体的是这个工作stream程: 签到 登出 login(成功201.但打印WARNING: Can't verify CSRF token authenticity服务器日志中的WARNING: Can't verify CSRF token authenticity ) 随后的ajax请求失败401未经授权 刷新网站(此时,页眉中的CSRF更改为其他内容) 我可以login,它的工作,直到我试图退出,并在一次。 任何线索非常感谢! 让我知道如果我可以添加更多的细节。
我没有看到任何示例,但我假设它们保存在数据库中的包含实体表内。 IE浏览器。 如果我有一个Person实体/聚合根和相应的Person表,如果它有一个名为Address的Value对象,Address值将被保存在这个Person表中! 这对于我有其他实体如公司等有一个地址的域是否有意义? (我正在写一个项目pipe理应用程序,并试图进入DDD)
我正在使用这样的devise支持库NavigationView : <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> <!– put your main layout here –> <include layout="@layout/drawer_main_layout"/> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_height="match_parent" android:layout_width="wrap_content" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header" app:menu="@menu/drawer_view"/> </android.support.v4.widget.DrawerLayout> 我已经设置了这个菜单: <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_dashboard" android:title="Home" /> <item android:id="@+id/nav_messages" android:icon="@drawable/ic_event" android:title="Messages" /> <item android:id="@+id/nav_friends" android:icon="@drawable/ic_headset" android:title="Friends" /> <item android:id="@+id/nav_discussion" android:icon="@drawable/ic_forum" android:title="Discussion" /> </group> <item android:title="Sub […]
我们都知道单身人士是多么的糟糕 ,因为他们隐藏了依赖和其他原因 。 但是在一个框架中,可能有许多对象只需要实例化一次,并从任何地方调用(logging器,db等)。 为了解决这个问题,我被告知要使用一个所谓的“对象pipe理器”(或像symfony这样的服务容器 ),在内部存储对服务(logging器等)的每一个引用。 但是,为什么服务提供商不如纯粹的单身人士? 服务提供者也隐藏了依赖关系,他们只是把第一个创build的东西包装起来。 所以我真的很难理解为什么我们应该使用服务提供者而不是单身人士。 PS。 我知道,为了不隐藏依赖关系,我应该使用DI(如Misko所述) 加 我想补充一下:现在单身人士并不是那么邪恶,PHPUnit的创造者在这里解释了这一点: http://sebastian-bergmann.de/archives/882-Testing-Code-That-Uses-Singletons.html DI + Singleton解决了这个问题: <?php class Client { public function doSomething(Singleton $singleton = NULL){ if ($singleton === NULL) { $singleton = Singleton::getInstance(); } // … } } ?> 即使这不能解决所有的问题,这也是相当聪明的。 除DI和服务容器之外,还有什么好的可接受的解决scheme来访问这个帮助对象?
我想创build如图中的渐变背景。 但它不能因为中心而展开覆盖底部和顶部。 我怎样才能使背景如下图所示? 或者我怎样才能让小ceterColor不扩散? 你有什么想法吗? 这是我想要的背景。 这是我做的背景。 这是上面的背景button的XML代码 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="#6586F0" android:centerColor="#D6D6D6" android:endColor="#4B6CD6" android:angle="90"/> <corners android:radius="0dp"/> </shape>
R中的基本数据types之一是因素。 在我的经验中,因素基本上是一种痛苦,我从不使用它们。 我总是转换成字符。 我觉得很奇怪,我错过了一些东西。 是否有一些重要的使用因子作为因子数据types变得必要的分组variables的函数示例? 我应该使用因素有什么具体情况?