哪些原则,代码质量,实践,aproaches,语言或框架功能可以帮助您在更广泛的案例中有效地重用功能,类等.所有情况都很有趣:要么您可以修改代码的实现和接口,以启用/改进重用,或者仅实现,或者根本不修改.重用有效性的关键指标是(对我而言):
(所有比较从较低级别重新实现).
PS.如果可能,请为每个答案指定一个因素,并说明它对您的案例有何帮助.
我有从菜单选项创建和启动的活动.但是我注意到这可能意味着有时会有两个或更多相同活动的副本.所以我想知道是否有办法看看是否已经实例化了另一个活动,然后让应用程序切换到它或者如果没有实例化则创建一个新活动.
是否可以跨平台共享视图模型 - WPF/Silverlight?我开始把我的VM放在一个单独的程序集中,很快就来到ICommand--然后让我问这个问题?这是可能的,如果这样做有好处吗?我们有可能在将来拥有WPF和Silverlight的客户端应用程序,所以我不想为两者复制VM.
我有一个鼠标活动课程.我正在使用dojo b/c我喜欢它的OO方法
dojo.declare("MouseObject", null, {
constructor: function(){},
onclick : function(){...},
_onClick : function(){...}
});
Run Code Online (Sandbox Code Playgroud)
_onClick()侦听窗口生成的鼠标按下/释放事件并确定是否发生了单击.如果有,onClick()则被称为.onClick()执行所有可能的点击共同的功能,因此每次用户点击时都需要调用它.
有时用户可能想要扩展功能onClick()是否仍然存在原始功能而无需复制粘贴它?我能想到的两种方式,我都不喜欢
dojo.declare("MouseObjectChild", [MouseObject], {
constructor: function(){},
onclick : function(){this.inherited(arguments);...}
});
Run Code Online (Sandbox Code Playgroud)
这有一个缺点,我必须继续创建我不需要的新类,并且两个添加一个中间函数
dojo.declare("MouseObject", null, {
constructor: function(){},
onclick : function(){this._onClick()...}, //child onClick
_onClick : function(){...}, //parent onClick
__onClick : function(){...} //listener
});
Run Code Online (Sandbox Code Playgroud)
但这看起来不是很好的代码
作为赏金,我需要有关如何最好地解决程序 - 用户交互的专家建议.如果程序提供了一个关键功能,例如在画布上绘制一个圆圈,那么用户如何最好地与之交互.如果用户想在圆圈后面画一个三角形怎么办?圆圈前方的一个正方形?然后该程序必须提供前后方法,如下所示:
beforeDraw();
draw();
afterDraw();
Run Code Online (Sandbox Code Playgroud)
这被认为是好设计吗?我应该把函数指针放在一个数组中并按顺序调用它们吗?
是否有可能在可重用的maven项目中放置Web应用程序样式(CSS文件和图像)?将此"style-projects"与其他WAR项目一起使用.
最好的祝福
斯特凡
我有一个列表,我创建如下:
tab([(top,left),(top,middle),(top,right),(center,left),(center,middle),
(center,right),(bottom,left),(bottom,middle),(bottom,right)]).
Run Code Online (Sandbox Code Playgroud)
我希望创建一个全局变量AllPosition,它是一个选项卡.所以我做了以下事情:
tab(AllPos).
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
然后我必须遵循问题:我有一个函数,在选项卡中接收其中一个.我希望删除.所以我这样做了:
place(Line, Column, Tab) :-
AllPos \== [_,_] /*while AllPos isn't empty - not sur if this is done this way*/ -> (member((Line,Column), AllPos) -> (erase(AllPos, (Line,Column), AllPos)).
Run Code Online (Sandbox Code Playgroud)
erase(List, Element, NewList)从List 中删除元素Element并创建一个新列表NewList等于List但没有Element.这两个函数member和erase正在工作.
事情是......你可能已经注意到我AllPos到处都用.这是因为我想,我想修改它,以便我可以在以后使用它(在从中移除一些元素之后),在另一个函数中.我的逻辑是对的吗?我能在另一个函数中使用修改过的AllPos吗?谢谢
我有一个具有相同UIView实例的应用程序。他们像UITableViewCell一样可以重用UIView吗?相似:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Run Code Online (Sandbox Code Playgroud) 内容管理系统(CMS)使我们能够轻松维护博客,新闻网站,一般网站等.其中许多设计用于管理内容页面,并提供工具来组织和自定义内容在Web上的显示方式.
但是,正如Mark Boulton在其自适应内容管理文章和Karen McGrane在关于适应自适应内容的讨论中所解释的那样,我们越来越多地不仅向网络提供内容,还向其他平台和渠道提供内容.我们需要工具来管理附带有意义元数据的内容.创建一次,随处发布.
主要思想是干净地存储内容,而不是将其与特定于Web的表示标记交织在一起.因为内容片段在语义上是分隔的,所以它可以很容易地适应不同的平台和频道.因此,它被称为自适应内容.
让我们看一个比较的简单示例:
说我管理新闻文章和事件.要创建一篇新闻文章,我会告诉CMS我正在创建的内容类型,并要求填写一个表单,其中包含针对新闻文章量身定制的各个字段(例如标题,副标题,全文,短片段和图像) .- 即内容片段
使用传统的Web发布工具,我可能不得不在新闻下创建一个新页面,然后在空白的WYSIWYG文本编辑器中输入和格式化新闻文章.- 即内容页面
如您所见,第一个设计允许我以最小的语义单位单独指定内容.当我想要显示或消费它时,系统可以轻松提供我需要的部分.
所以这是我的问题:是否有专门针对自适应内容设计的CMS ,并且它与表示层分离?
注意:这不是关于最佳CMS或我应该使用哪个CMS的讨论.我问的是,是否存在一种非常特殊的工具 - 专为自适应内容设计的CMS - 供开发人员使用.
连接到Redigo并在函数内部操作数据很容易就像黄油一样,但是当你必须重新使用它的连接时,问题出现了,显然是出于性能/实用性的原因.
在像这样的函数内部执行它:
func main() {
client, err := redis.Dial("tcp", ":6379")
if err != nil {
panic(err)
}
defer client.Close()
client.Do("GET", "test:1")
}
Run Code Online (Sandbox Code Playgroud)
但把它带到外面并不是:
var Client = redis.Dial("tcp", ":6379")
defer Client.Close()
func main() {
Client.Do("GET", "test:1")
}
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
./main.go:1: multiple-value redis.Dial() in single-value context
./main.go:2: non-declaration statement outside function body
Run Code Online (Sandbox Code Playgroud)
我已经尝试将连接作为const(ant),将defer放在main函数中让我感到沮丧也不行.
这是一个更大的问题,因为我有许多其他功能必须与Redis通信,但每次重新创建与Redis的连接似乎很愚蠢.
Redigo API仅显示如何创建Dial实例,但不会通过解释如何重用它来进一步说明.
你可能在我的演讲中迷失了方向,但我想在这里提出一些上下文,所以我的简明扼要的问题是:你如何重新使用(不是每次都重新创建)Redigo连接?
我有uitableview一个自定义单元格从数组中获取数据.自定义单元格有一个uilabel和一个uibutton(在uilabel文本或加载文本的数组对象之前不可见- 是零).
在发布时一切都很好.当我按下uibutton正在附加的数组时,新单元格将插入单元格下方.
但是当我滚动时 - 突然uibutton出现在其他细胞上,而这些条件uilabel text isEmpty并不是暗示的.
这是我的cellForRowAtIndexPath代码
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:TblCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! TblCell
cell.lblCarName.text = someTagsArray[indexPath.row]
if let text = cell.lblCarName.text where text.isEmpty {
cell.act1.hidden = false
} else {
println("Failed")
}
cell.act1.setTitle(answersdict[answersdict.endIndex - 2], forState:UIControlState.Normal)
cell.act2.setTitle(answersdict.last, forState:UIControlState.Normal)
return cell
}
Run Code Online (Sandbox Code Playgroud)
所以我的一般问题是如何停止重用那些自定义单元格?据我所知,没有直接的方法可以reusablecellswithidentifier快速执行此操作,但也许在这个问题上有一些解决方法?