回顾一堆MVC风格的Web应用程序后,我注意到在业务层前面有一个非常大的服务接口是很常见的.该接口的实现通常包括一堆DAO.所以你有类似的东西:
public class FoodServiceImpl implements FoodService {
private FruitDAO fruitDAO;
private VegetableDAO vegetableDAO;
private MeatDAO meatDAO;
// ... DAO injection stuff
public List<Meat> getMeat() {
return meatDAO.getMeat();
}
public void addMeat(Meat meat) {
meatDAO.add(meat);
}
public List<Fruit> getFruit() {
return fruitDAO.getFruit();
}
// ... tons of methods that mostly just delegate to DAOs
}
Run Code Online (Sandbox Code Playgroud)
假设您的DAO首先不是具体的,为什么不将DAO暴露给下一级呢?
所以代替:
// assume foodService is injected at runtime
public void controllerMethod() {
foodService.getFruit();
foodService.getMeat();
}
Run Code Online (Sandbox Code Playgroud)
你有
// assume DAOs are injected at runtime
public void …Run Code Online (Sandbox Code Playgroud) 我已经阅读了关于这些问题的所有答案,但没有一个解决方案似乎有效.
此外,我正在获得触发按键的特殊字符的氛围根本不起作用.有人可以验证谁做了这个吗?
我在网页中有一个TextBox,我正在使用javascript来解析和修改HTML格式.90%的效果非常好,我试图支持的最后一个主要功能是从word文档中复制和粘贴.我完全得到它,我只是坚持找到列表并将它们包装在UL标签中.
所以,使用正则表达式,我想在本文中找到列表:
<p>paragraph goes here
<li>goes here<br/>
<li>list item 2<br/>
<li>list item 3<br/>
<p>another paragraph
Run Code Online (Sandbox Code Playgroud)
并<li>用<ul>标记包装该部分.我的正则表达不是那么好,有人可以帮忙吗?
-----更新-----
虽然我很感谢所有的反馈,基本上表明我需要从头开始解决这个问题,但我没有时间这样做.我完全理解正则表达式不是处理HTML格式的理想方式,但我现在如何使用它,它将处理我的用户希望做的大部分工作.我只需要HTML标签的子集,而不是完整的HTML编辑器.
我的内容来源是用户从word文档(约99.9%)复制和粘贴的时间.我使用正则表达式将HTML标记插入纯文本.对于列表,我发现子弹字符MS字插入其复制的文本,并将其替换为<LI>标记.我只是想让用户友好的方式用<LI>标签包装<UL>标签.
我会考虑能够正确地结束我的标签,所以..假设它们正确结束,用<ul>标签包装我的列表项的正则表达式是什么?
谢谢!
我试图找到关于glibc的信息以及它在多大程度上使用SSE功能.
如果它已经过优化,我可以开箱即用吗?
假设我正在使用一个较大的Linux发行版,我假设它的glibc被编译为尽可能通用并且尽可能便携,因此没有优化?
我对函数memcpy和memcmp以及如何尽可能快地获取这些函数特别感兴趣.
不完全是编程,但我需要帮助.
我正在使用WampServer运行开发服务器.我想安装Python(因为我更喜欢使用Python而不是PHP),但似乎没有明显的选择.我已经阅读了关于mod_python和WSGI以及后者如何更好的内容.
但是,从我收集的内容(我可能是错的)你必须使用WSGI做比PHP更低级的东西.所以我研究了Django,但它似乎太复杂了我想要的东西.
那么,你会给这个领域的新手提出什么建议?
再次,对不起,如果这不是关于编程,但它是相关的,这似乎是一个不错的地方问.
我在哪里可以找到很好的生产enterprise-的例子Ÿ具有软件:
很高兴看到样本从简单的CRUD屏幕到非常复杂的面向过程的GUI,用于CRM/ERP /财务/风险评估等应用程序.基本上GUI具有大量的输入字段,用于定义特定的业务流程.
我正在为我的团队分别为IE6,7和8制作3个VM版本的XP.我开始使用我们拥有的具有IE6和SP2的旧VMware映像,并且已经完成并使用我们需要的所有东西进行自定义,留下了IE6.
现在我需要复制这个VM,然后在接下来的2个副本上更新到IE7和8.
我原来的VM有以下文件:.nvram,.vmdk,.vmsd,.vmx和.vmxf.当我从这里创建新的vm时,我不得不选择.vmdk文件.然后VMware通过并构建了所需的其他文件.
我发现我在第一份XP上做的所有更新都存储在一个单独的文件中,我指示VMware存储在/ usr/local/vms中.通过我在升级过程中获得的更新和2个快照,现在大约6gb.
我复制了我的原始VM并设置了一台名为IE7的新机器,但是当它启动时,没有任何更新.所以我现在知道我的所有更改都保存在/ usr/local/vms/IE6 6gb文件中.
如何将我的所有更新合并回.vmdk文件,以便我可以A)创建我需要的其他2个IE7/8虚拟机,B)将3个虚拟机映像放在我们的网络上供我们的其他开发人员使用?
我的想法是,自从我从.vmdk文件开始这个过程以来,应该有办法将所有东西都推回去.
我有我希望看起来像这样的代码:
List<Type> Os;
...
foreach (Type o in Os)
if (o.cond)
return; // Quitting early is important for my case!
else
Os.Remove(o);
... // Other code
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为当您foreach在该列表上的循环内时,无法从列表中删除:
有没有一种解决问题的常用方法?
如果需要,我可以切换到不同的类型.
选项2:
List<Type> Os;
...
while (Os.Count != 0)
if (Os[0].cond)
return;
else
Os.RemoveAt(0);
... // Other code
Run Code Online (Sandbox Code Playgroud)
丑陋,但它应该工作.
如何在WPF中按下诸如Ctrl+之类的快捷键O(独立于任何特定控件)?
我试图捕捉KeyDown,但KeyEventArgs并没有告诉我是否Control或Alt已关闭.