标签: reusability

iPhone:有没有办法loadFromNib并有一个reuseIdentifier?

我现在正在考虑这个问题很长时间.

我尝试在我的表中使用不同类型的单元格,每个单元格都有自己的单元格控制器,并且具有来自NIB的reuseIdentifier AND加载.

问题可归结为:您可以通过[UITableViewCell initWithStyle:reuseIdentifier:]或通过[NSBundle loadNibNamed:owner:options:]初始化Cell.

我是否忽视了某些内容,或者是否有可能同时使用nib加载并使用reuseIdentifier?

identifier reusability uitableview nib

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

RESTful Web服务是否是重用基础架构的正确方法?

在使用Web API(RESTful服务)访问远程基础结构时,我看到了一个争议。如果您能发表评论,我将不胜感激。该建议来自文章“ RESTful Web服务与“大型” Web服务:做出正确的体系结构决策”[1]是使用Web API而不是临时集成(“混搭”)和快速原型制作。[2]中的经验研究表明,在重新使用现有信息和功能的方案中,遵循了这些建议。但是,将基础结构与Web API一起重用并不能很好地适应临时集成的任务。我的印象是,通常在无法解决我要解决的问题的资源无法很好地扩展的情况下重新使用基础结构:大量数据,高带宽,高并发性。但是,Amazon可以通过以下两种方式提供对其基础架构(存储空间,消息队列)的远程访问:

  • 传统的SOAP Web服务(所谓的Big Web服务)和
  • 轻量级的RESTful Web服务(所谓的Web API)。

尽管没有书面记录客户端(在Amazon Web Services的案例研究中描述)是否使用Big Web服务或Web API,但是Amazon提供Web API形式作为其替代方案来访问其基础架构的事实必须是有意义的。

您知道他们的动机是什么吗?您是否知道有人为了快速原型而重复使用基础设施?还是为了测试?换句话说,如果我想重用Amazon提供的基础架构,那么在哪些示例情况下应该使用哪种API风格?

编辑:在这种情况下,我的意思是作为基础架构:存储空间,计算能力,互联网带宽。因此,我想知道这些资源是否可以在临时集成中重复使用。


  1. Cesare Pautasso,Olaf Zimmermann,Frank Leymann,RESTful Web服务与“大型” Web服务:做出正确的体系结构决策,第805-814页,槐金鹏,罗宾·陈,韩小文,刘云浩,马卫英,安德鲁·汤姆金斯(Andrew Tomkins),张晓东(编辑),第17届国际万维网会议论文集,ACM出版社,中国北京,2008年4月。

  2. Hartmann,Bjorn&Doorley,Scott&Klemmer,Scott R.,《黑客,混搭,胶合:理解机会设计》IEEE普及计算,第1卷。7号 3,46-54(2008)。

rest web-services infrastructure reusability rapid-prototyping

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

如何在MVC模型中编写可重用的业务逻辑?

我的问题是我们尝试使用MVC(PHP)框架.经过讨论后认为MVC非常好,但我错过了编写可重用模型(应用程序)逻辑的可能性.所以,我不确定我们是否有正确的方法在MVC框架中实现我们的软件.

首先,我将描述我们目前使用的非MVC,oo方法.

例如 - 我们正在开发一些浏览器游戏(是的,这是我们的职业).想象一下,我们有一个玩家对象.我们经常使用这个播放器对象.我们有一些不同的页面,您可以购买思考,因此您需要在玩家"银行账户"上进行"金钱"交易,或者想象您可以与其他玩家进行战斗.我们有几个战斗脚本,这些脚本需要2个或更多玩家对象(这取决于战斗类型,即战队战斗,玩家与玩家战斗......).

因此,我们有几个页面(和控制器)具有不同的战斗逻辑.但是这个控制器中的每一个都使用玩家对象来计算玩家拥有的所有属性和物品以及玩家将要做的哪些伤害和防御.

那么,如果是MVC模型,我们如何在播放器对象中重用逻辑呢?在不同的战斗控制器和模型中复制所有必要的逻辑是不好的.

我认为"黄金交易" - 逻辑将是一个很好的例子,可以为您提供更多详细信息.在战斗中你需要交易功能,如果你赢得其他玩家并且掠夺他的一些黄金,你需要交易功能以便购买一些东西而你需要交易功能以防花费一些金币给球员公会......

所以,我想说在一个播放器模型中定义所有这些功能将是一个糟糕的方法!我可以说你这些玩家模型会非常大(实际上我们的问题是我们的玩家级别真的很大 - 它是一个神级)

你认为这个问题有MVC风格的解决方案吗?

model-view-controller logic model reusability

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

NSScrollView无限/无限滚动| 子视图重用

我在寻找一种方式来实现类似可重复使用的细胞UI/NSTableView,但对NSScrollView.基本上我想要像WWDC 2011视频"会话104 - 高级滚动视图技术",但对于Mac.

我有几个问题意识到这一点.第一个:NSScrollView没有-layoutSubviews.我尝试使用-adjustScroll而不是设置不同的失败contentOffset:

- (NSRect)adjustScroll:(NSRect)proposedVisibleRect {
    if (proposedVisibleRect.origin.x > 600) {
        //  non of them work properly
        // proposedVisibleRect.origin.x = 0;
        // [self setBoundsOrigin:NSZeroPoint];
        // [self setFrameOrigin:NSZeroPoint];
        // [[parentScrollView contentView] scrollPoint:NSZeroPoint];
        // [[parentScrollView contentView] setBoundsOrigin:NSZeroPoint];
    }
    return proposedVisibleRect;
}
Run Code Online (Sandbox Code Playgroud)

我尝试的下一件事是设置一个具有width数百万像素的真正巨大的内容视图(实际上与iOS相比有效!)但现在的问题是,如何安装重用池?
在滚动到新位置时移动子视图或删除所有子视图并再次插入它们会更好吗?以及我应该如何以及在哪里这样做?

objective-c reusability nsscrollview memory-efficient infinite-scroll

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

在几个活动中重用Android AsnycTask的模式?

我的项目中有几个Activity子类,每个子类都调用一个基于SOAP的Web服务,处理并显示结果.SOAP序列化,调用处理和将结果解析为各种POJO对象都封装在MyWebService类中.该类通过AsyncTask执行实际的Web服务调用.

为了能够将结果传递回调用的Activity子类,我想我强制所有这些活动都应该实现一个WebServiceResultProcessor接口,定义一个函数(processWebServiceResults)作为AsyncTask的回调,从onPostExecute调用.

我还想在Web服务调用期间显示ProgressDialog.这是我的问题.为了能够显示ProgressDialog(来自MyWebService或它的AsyncTask),我需要传递对调用者Activity的Context的引用.并且为了能够从AsyncTask执行回调函数,我需要传递相同的对象引用,但这次是作为WebServiceResultProcessor.这在我看来是一种代码气味,两次传递相同的物体,但是看不到任何方法.我可以创建一个新的基类,扩展Activity类并从扩展类强制继承,而不是接口,但这意味着我将使用此MyWebService类排除ListActivity等.

有一个更好的方法吗?

android design-patterns reusability android-asynctask android-activity

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

挂钩组件

我正在尝试创建一个图表可重用组件,但我无法围绕它进行创建.

我们的想法是使用react(让我们称之为"Axes")重用以下SVG,以及一些功能和状态,如宽度和高度,数据→坐标映射等等:

<svg width={...} height={...}>
    <g ref="area" transform={...}>
        {chartElements}
    </g>
    <g ref="xAxis">...</g>
    <g ref="yAxis">...</g>
</svg>
Run Code Online (Sandbox Code Playgroud)

然后我将这个SVG和状态用于多个图表组件.

做到这一点的方法可能是

  1. 使Axes成为一个组件,this.props.children代替使用chartElements,并定义一个Chart组件,如下所示:

    render: function() {
        return (
            <Axes ref="axes" {...this.props}>
            {this.props.data.map(function(d) {
                return <rect x={this.refs.axes.state.xMap(d)} />
            })}
            </Axes>
        )
    }
    
    Run Code Online (Sandbox Code Playgroud)

    但这需要访问Axes的道具和状态,在渲染过程中我们不能这样做.

  2. 将功能包装在mixin中,并将render方法更改为mixin的wrapAxes(chartElements)方法,该方法返回上面的代码段.

    这将混合Axes和图表的状态,需要特别注意,因为每个图表需要在其返回值上调用wrapAxes

  3. 传递一个组件作为prop,然后在渲染时传递状态/道具?这甚至可能吗?

  4. ???

我只是不知道如何处理这个问题.

javascript reusability reactjs

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

monad的表现力是否以代码重用为代价?

当我比较Applicative和Monad类型的二进制操作时

(<*>) :: Applicative f => f (a -> b) -> f a -> f b
(=<<) :: Monad m       => (a -> m b) -> m a -> m b
Run Code Online (Sandbox Code Playgroud)

两个差异变得明显:

  • ap期望一个正常的纯函数,而bind期望一个monadic动作,它必须返回一个相同类型的monad
  • 具有ap动作序列由应用程序确定,而使用bindmonadic动作可以确定控制流程

所以monads给了我额外的表现力.但是,由于它们不再接受正常的纯函数,这种表达性似乎是以代码重用为代价的.

我的结论可能有点幼稚甚至错误,因为我对Haskell和monadic计算的经验很少.任何在黑暗中的光都是值得赞赏的!

monads haskell functional-programming dry reusability

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

如何编写可重用的组件/模块?

我现在正在写两个新网站.两者都有很多功能.是否可以使用angular来编写小组件/模块并在其他应用程序中重用它们?它的项目结构是什么,或者我可以使用ng-cli的结构?

reusability angular-module angular-cli angular-components angular

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

角2/4。重用策略。如何告知组件已被重用?

我们使用NG2 / 4的东西。我们已经实现了自定义重用策略,以执行从摘要屏幕到详细信息屏幕的导航,因此当用户单击“后退”按钮时,摘要屏幕保持在相同状态(防止重新创建)。

问题是,当我们在子屏幕中编辑一条记录并返回到主屏幕时,我们必须重新加载特定数据,而不是整个主屏幕。我们必须以某种方式从一个组件中更改相关数据并对其进行更新。

但是在策略类中,没有方法可以访问组件。are是类,但没有它们的实例,因此尚不清楚如何让组件知道特定更改。

public shouldReuseRoute(future: ActivatedRouteSnapshot, current: ActivatedRouteSnapshot): boolean {
    // I guess here we have to treat it somehow if it is possible
}
Run Code Online (Sandbox Code Playgroud)

routing components reusability angular

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

在ASP.NET Core MVC中找不到嵌入式视图

我无法重用来自另一个程序集的cshtml文件。这是裸露的样本:

  • 使用默认模板(使用Web应用程序,模型视图控制器)创建一个ASP.NET Core Web应用程序项目,并将其命名 ViewReuse
  • 添加一个名为的类库 ViewLibrary
  • Microsoft.AspNetCore.All在ViewLibrary中添加对metapackage 的引用
  • 创建一个名为Views的文件夹,然后创建另一个名为Shared的文件夹,并在其中创建一个简单的cshtml文件,名为 ReusedLayout.cshtml
  • 添加EmbeddedResources Include='Views\**\*.cshtml'到ViewLibrary的csproj,以将ViewLibrary.dll中的所有视图包括在内
  • 在ViewReuse项目的Startup.cs中,将MVC服务的配置更改为 services.AddMvc().ConfigureApplicationPartManager(p => { p.ApplicationParts.Add(new AssemblyPart(typeof(ReusedController).Assembly)); });
  • 更改About.cshtml为使用ViewLibrary中的布局:Layout = "/Views/Shared/ReusedLayout.cshtml"
  • 然后运行该应用程序,并导航到/home/about

对我来说,我遇到了这个错误:

InvalidOperationException:找不到布局视图“ /Views/Shared/ReusedLayout.cshtml”。搜索了以下位置:/Views/Shared/ReusedLayout.cshtml

我做错了什么?我该如何解决这个问题?

asp.net-mvc reusability razor

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