我知道钻石继承被认为是不好的做法.但是,我有2个案例,我认为钻石继承可以很好地适应.我想问一下,您是否会建议我在这些情况下使用钻石继承,或者是否有其他设计可能更好.
案例1:我想在我的系统中创建代表不同类型"动作"的类.这些操作按以下几个参数进行分类:
我打算有以下设计:
// abstract classes
class Action
{
// methods relevant for all actions
};
class ActionRead : public virtual Action
{
// methods related to reading
};
class ActionWrite : public virtual Action
{
// methods related to writing
};
class ActionWithDelay : public virtual Action
{
// methods related to delay definition and handling
};
class ActionNoDelay : public virtual Action {/*...*/};
class ActionFlowA : public virtual Action {/*...*/};
class ActionFlowB : public …
Run Code Online (Sandbox Code Playgroud) 有没有人有方法来理解复杂的SQL语句?在阅读结构/ OO代码时,通常有一些抽象层可以帮助您将其分解为可管理的块.但是,通常在SQL中,您似乎必须同时跟踪查询的多个部分中发生的情况.
此问题的推动力是此问题中讨论的关于复杂连接的SQL查询.在盯着答案查询几分钟后,我终于决定使用特定记录逐步查询查看发生了什么.这是我能想到的唯一方法来逐一理解查询.
有没有更好的方法将SQL查询分解为可管理的部分?
将单个远程分支作为本地分支进行跟踪非常简单.
$ git checkout --track -b ${branch_name} origin/${branch_name}
Run Code Online (Sandbox Code Playgroud)
将所有本地分支推送到远程,根据需要创建新的远程分支也很容易.
$ git push --all origin
Run Code Online (Sandbox Code Playgroud)
我想反过来.如果我在一个源上有X个远程分支:
$ git branch -r
branch1
branch2
branch3
.
.
.
Run Code Online (Sandbox Code Playgroud)
我是否可以为所有远程分支创建本地跟踪分支,而无需手动创建每个分支?说出类似的话:
$ git checkout --track -b --all origin
Run Code Online (Sandbox Code Playgroud)
我用google搜索和RTM,但到目前为止已经上传了.
我正在开发一个软件开发项目,该项目使用主要用C和C#编写的代码.目前,测试的责任主要落在开发人员更改代码上.
我有兴趣实现自动化测试框架,以帮助我们提高代码质量.特别是,每次将代码提交到版本控制时都会运行自动化测试.
我对自动化测试(或单元测试)的经验不多.有没有人使用C/C#的测试框架进行开发,如果是这样,我们在整个公司范围内以及相当大的现有代码库上实现它可能会遇到什么障碍?
特别是,我一直在研究如何使用Gallio.对此特定产品的任何评论将不胜感激.
附加信息:
将单元测试添加到现有项目
单元测试旧版ASP.NET Webforms应用程序
将现有代码移动到测试驱动开发
收藏.NET单元测试框架
是否可以指定我自己的默认对象而不是null?我想在某些对象上定义自己的默认属性.
例如,如果我有一个带有属性bar和baz的对象foo,而不是默认的returing null,我希望它是foo的一个实例,bar设置为"abc",baz设置为"def" - 这是可能?
那些真正懂得如何利用动态编程语言的人如何以不同于使用静态语言工作的人来编程?
我对静态与动态类型的整个争论很熟悉,但这不是我所得到的.我想讨论在动态语言中实用但在静态语言中不实用的问题解决技术.
我在动态编程语言中编写的大多数代码与用静态编程语言编写的代码差别不大.俗话说,你可以用任何语言写FORTRAN,很多人都这样做.但有些人使用动态编程语言以一种不易转换为C++的方式解决问题.他们的一些技术是什么?
讨论如何使用动态编程语言的一些好资源是什么?不是关于语言语法或API参考的书籍,而是关于利用动态语言功能的问题解决方法的资源.
编辑(2009年1月5日):我很欣赏下面的答案,但它们似乎并没有说明动态语言倡导者说他们所经历的生产力的巨大提升.
当我启动一个简单的iPhone应用程序时,我有一个直接的方法将XML摘录的键/值对转换为NSDictionary.问题是,我需要将那些曾经将我的UITableView填充的NSDictionary实例转换为自定义类,因为它们需要行为和额外的复杂性.这里的问题是,现在为了让我实例化一个对象并用Web服务中的键/值对填充其实例变量变得更加困难.我不能再把它扔进一个迭代XML并使用KVC设置其实例变量的方法.
那里有什么样的其他解决方案?
我可以从用c或c ++编写的库中调用lisp函数吗?我该如何扩展lisp?当你想做一些系统调用或类似的事情时,这很有用.
我的计算机中安装了两个版本的rails(2.1.0和2.2.2).
当我创建一个新的应用程序时,是否可以指定我想使用旧的(2.1.0)版本?
我在一家公司工作,该公司有一些非标准化的SQL约定(几年前由Delphi Developers编写).在哪里可以找到最常用的SQL行业标准惯例定义?
c++ ×2
sql ×2
.net ×1
branch ×1
c# ×1
cocoa ×1
cocoa-touch ×1
database ×1
extend ×1
generics ×1
git ×1
inheritance ×1
iphone ×1
lisp ×1
objective-c ×1
oop ×1
sql-server ×1
t-sql ×1
unit-testing ×1