小编And*_*eir的帖子

对象是应该将自己写入文件,还是应该使用其他对象来执行I/O?

注意:很抱歉这个问题很长!

我试图理解面向对象背后的一些关键领域,我无法以某种方式决定我的特定问题.

假设我有一个充满可爱数据的对象.班级鲍勃.

Bob myBob = new Bob("This string is data");
Run Code Online (Sandbox Code Playgroud)

假设我想将myBob的内容保存到xml文件(bob.xml)

我是否应该在bob上写一个对象来写出内容,或者我应该让myBob这样做吗?

案例1:对象行为

Writer myWriter = new Writer(myBob, "C:\\bob.xml");
Run Code Online (Sandbox Code Playgroud)

案例2:保存方法

myBob.Save("C:\\bob.xml");
Run Code Online (Sandbox Code Playgroud)

有些人支持选项一,因为这意味着如果更改了编写文件的代码,则不需要在每个Save方法中更新; 我想,促进代码重用.我的问题是从对象中获取所有数据,这些对象可能没有访问者的私有数据.

选项二的情况是该方法仅对对象持有的数据起作用,这就是它应该的方式.不受其他物体的干扰.

或者是我的问题的答案之一是"案例依赖"问题?如果是这样,你怎么知道何时一种方法优先于另一种?

c# oop io design-patterns

47
推荐指数
3
解决办法
5397
查看次数

调查内存使用情况时,GC_FOR_ALLOC更"严重"吗?

我正在调查我的Android应用程序的垃圾收集问题,我很想知道GC_FOR_ALLOC是否表示比其他GC消息(例如GC_CONCURRENT)更大的问题.

根据我的理解,GC_CONCURRENT正在做垃圾收集器应该做的事情.堆已达到特定限制,最好去清理内存.

GC_FOR_ALLOC向我建议,如果我正在尝试创建一个对象并且没有任何内存可以执行,那么会发生更严重的事情.

GC消息是否有优先级或"严重性"级别?

java android garbage-collection

24
推荐指数
1
解决办法
1万
查看次数

<header>是语义标签还是结构标签

拿这两个标记:

<div id="header">
  <img src="/img/logo.png" alt="MyLogo" />

  <ul id="misc-nav">
    <li>..</li>
  </ul>

  <header>
    <h1>Welcome to Bob's Website of Fantastical Conbobulations</h1>
    <p>The smell of invention awaits you...</p>
  </header>
</div>
Run Code Online (Sandbox Code Playgroud)

<header>
  <img src="/img/logo.png" alt="MyLogo" />

  <ul id="misc-nav">
    <li>..</li>
  </ul>

  <h1>Welcome to Bob's Website of Fantastical Conbobulations</h1>
  <p>The smell of invention awaits you...</p>
</header>
Run Code Online (Sandbox Code Playgroud)

我的例子可能不完美,但是我想知道标签的用途是用于内容的语义定义,还是用CSS进行块级结构定义?

从规范本身的理解是,第一个例子是正确的解释,但我看到第二个被吹捧为正确的方式.

你能说清楚吗?

html html5

10
推荐指数
1
解决办法
752
查看次数

如何创建按分类术语对节点进行分组的视图?

我正试图按照我的意愿弯曲视图和 drupal。到目前为止,我已经生成了一个视图来显示我的节点的标题。每个节点将从集合 {X, Y 和 Z} 中精确分配一个分类术语。

例如,节点 A 的标题是“汽车驶入田野,数千人不在乎”。节点 A 有一个分类术语“无意义”。

我想按分类术语对所有节点标题进行分组。所以..

毫无意义 - 汽车驶入田野,数千人不在乎 - .... 下一个分类术语 - ..... - ...... - ...

你明白了。它可行吗,我该怎么做?我在视图中找不到按选项分组。

欢呼 SO。

drupal views drupal-views drupal-6

5
推荐指数
0
解决办法
5684
查看次数

如何在冰淇淋三明治中设置TabWidget的样式?

我在冰淇淋三明治应用程序中使用TabHost/TabWidget的折旧库.我没有时间熟悉ActionBarSherlock,所以我必须以我知道的方式进入应用程序.

我想知道我怎么能去造型的TabWidget及其Tab对象,更改所选标签的颜色,对背景颜色和图像?使用标准样式和主题似乎不起作用.

android android-widget android-layout

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

关于例外情况:做什么以及在哪里登录?

我的问题实际上分为两个部分,因此模糊的标题.

第一部分

据我所知,你永远不应该吞下一个例外.甚至没有记录它而忘记了.在一般情况下,我尝试解决异常并重试代码 - 例如,假设我得到一个FileNotFound异常.

我提示用户检查文件是否存在并重试,提供另一个文件选择器对话框并希望最好.如果未能尝试解决问题,我最终会通知用户并记录异常.我被告知在catch块中这不是正确的事情,所以我是通过尝试解决问题来做到的吗?

我想不出还有什么我应该做的.我怀疑我被喂错了信息 - 我是一个可以控制的灵魂.

第二部分

在我的程序目录中创建一个日志以记录异常我认为很好,但我再次被告知应该将异常写入windows eventlog.它是否正确?在什么情况下你应该写入事件日志?

愚蠢的问题需要愚蠢的答案

编辑:除了一般模糊的域名之外,这个问题没有上下文.我和我的朋友在特定情况下对正确的事情进行了喋喋不休.

c# design-patterns exception-handling exception

3
推荐指数
1
解决办法
1343
查看次数

是否可以通过JavaScript在浏览器中检测硬件加速?

我注意到,由于字体渲染的变化,使用硬件加速的浏览器的字体大小不一样 - 使字符显得更小.在具有水平导航的网站上,这实际上成为一个问题.

是否可以使用JavaScript或JS库来检测浏览器中启用(或禁用)的硬件加速?

Modernizr似乎没有提供这种选择.

javascript browser html5 hardware-acceleration modernizr

3
推荐指数
1
解决办法
2138
查看次数

我应该使用事件通知课程还是仅使用返回?

我今天对事件和代表们都很敏感,并且这样做,我一直在想着体验吧,那些来自游戏的进步栏.但我对解决问题的更好方法有疑问 - 它可能就像糟糕的设计一样简单.我来为您提供一些细节.

我用ExperienceBar类建模了我的想法.

它包含属性:

  • int StartValue
  • int CurrentValue
  • int EndValue

和方法

  • void UpdateBar(int)

UpdateBar将参数添加到CurrentValue,然后测试它是否已达到EndValue.如果超过金额,则EndValue会增加,金额会继续.请注意,最初在我的想法中,它并不关心达到可能的最大量的效果,只是结束值增加并且StartValue被重置为零.

另一个名为Player的类具有类ExperienceBar的属性.

在我的小演示中,当Player.ExperienceBar.UpdateBar(int)到达EndValue时,它会触发一个由Player类处理的事件.它将Player.Level属性更新为1.

我刚刚意识到只需将UpdateBar(int)更改为返回类型"true"即可实现相同的功能.此方法可以由Player类测试,当为true时,Player.Level增加1.

所以我的问题 - 这是处理这种特殊环境的最佳实践方法吗?作为这种情况的一般经验法则,处理事件是否更好,或者只是通过测试return语句来保持简单?

PS:我希望我尽可能清楚地表明这一点,但我可以尝试澄清是否有人遇到麻烦.我相信我的想法可能已经存在一些冗余,但请尽量不要偏离这个问题.我很清楚他们!谢谢 :)

c# events event-handling

0
推荐指数
1
解决办法
118
查看次数