虽然我已经编程了很长一段时间,但是当涉及耦合对象时,我似乎总是把头撞到墙上,所以我想知道是否有人有任何资源或我可以遵循的黄金规则.
让我举一个小例子,没有特别的语言......
class Person {
private int personnel_id
private String first_name;
private String last_name;
private int personnel_level;
//Lab labs[4]; <- Lab(s) the Person works in
}
class Lab {
private int lab_id;
private String lab_name;
//Person[99] personnel; <- Person(s) working in the Lab
}
Run Code Online (Sandbox Code Playgroud)
让我们暂时忽略ctors/setters/getters/dtors并只是实例化一些东西......
Person people = new Person[1500];
Lab labs = new Lab[10];
Run Code Online (Sandbox Code Playgroud)
我的问题是......这里最好的做法是什么......
people["Gordon Freeman"].blewUp((Lab)"Black Mesa");
-> returns T/F
Run Code Online (Sandbox Code Playgroud)
要么...
labs["BlackMesa"].blownUpBy((Person)"Gordon Freeman");
-> returns T/F
Run Code Online (Sandbox Code Playgroud)
或者它甚至不重要:S
我正在研究的现实生活中的例子要复杂得多.每当Person做某事时,每个人都Lab需要得到通知等等,而我只想弄清楚我是否有任何原则可以在这里申请.
我用方法名定义协议是:
- (id)initWithDelegate:(id <Foo>)delegate;
Run Code Online (Sandbox Code Playgroud)
在我的项目中,还有第三方协议(在不同的类中):
- (id)initWithDelegate:(NSObject *)delegate;
Run Code Online (Sandbox Code Playgroud)
在另一个导入两个协议的类中,我只使用第二种方法:
id thirdPartyObject = [[ThirdPartyClass alloc] initWithDelegate:self];
Run Code Online (Sandbox Code Playgroud)
但XCode显示错误:self不符合<Foo>协议,而self不需要符合该协议.
如何避免这种命名冲突?
Stackoverflow教会了我很多关于适当的RESTful,MVC,GET/POST是什么,我想知道在Stackoverflow存在之前人们如何学习编程/工程师.;)
鉴于此,这是另一个问题,即如何以最恰当的方式完成(公平)通用程序.
我需要从视图模板生成HTML以用于控制器操作.从这个意义上说,它有点像ActiveMailer.
最好的方法是什么?伪代码将非常感谢,谢谢!
我一直都坚持这一点并且已经整整一天..我仍然非常擅长在perl中解析/抓取但我认为我已经把它解决了这个...我一直在用不同的perl模块尝试这个(tokeparser,tokeparser:简单,网络解析器和其他一些)...我有以下字符串(实际上实际上是一个完整的HTML页面,但这只是显示相关的部分..我试图提取"text1"和"text1_a".等等("text1"等只是作为一个例子放在那里)...所以基本上我认为我需要先从每个中提取这个:
"<span style="float: left;">test1</span>test1_a"
Run Code Online (Sandbox Code Playgroud)
然后解析这个以获得2个值..我不知道为什么这给了我这么多麻烦因为我认为我可以在tokeparser中做到这一点:简单但我似乎无法返回DIV内部的值,我想知道它是否因为它包含另一组标签(标签)
string(代表html网页)
<div id="dataID" style="font-size: 8.5pt; width: 250px; color: rgb(0, 51, 102); margin-right: 10px; float: right;">
<div style="width: 250px; text-align: right;"><span style="float: left;">test1</span>test1_a</div>
<div style="width: 250px; text-align: right;"><span style="float: left;">test2</span>test2_a</div>
<div style="width: 250px; text-align: right;"><span style="float: left;">test3</span>test3_a</div>
Run Code Online (Sandbox Code Playgroud)
我在perl web解析器模块中的尝试:
my $uri = URI->new($theurl);
my $proxyscraper = scraper {
process 'div[style=~"width: 250px; text-align: right;"]',
'proxiesextracted[]' => scraper {
process '.style', style => 'TEXT';
};
result 'proxiesextracted';
Run Code Online (Sandbox Code Playgroud)
我只是盲目地试图理解web:解析器模块,因为它基本上没有文档,所以我只是将它们与模块中包含的示例和我在互联网上找到的示例拼凑在一起..任何建议非常感谢.
一个基本问题,我不确定答案.以下功能是否有效?
std::vector<int> & test_function() {
std::vector<int> x;
// do whatever
return x;
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?函数返回后,程序不应该从堆栈中删除x吗?谢谢.
好的,这是一个相当广泛的问题,但是......是否有一个图表说明框架的哪个版本将运行什么?
所以,我猜它会扼杀两个问题
1 - 框架是否100%向后兼容?我有一个Framework 2.0网站运行1.1 dll,所以我认为2.0将运行1.1.这适用于Windows应用程序吗?它适用于所有版本吗?
2 - 框架是否向前兼容?我知道上面的反面将不起作用,但它适用于任何版本?
那么,保持客户机器上的版本与您的构建版本同步有多重要?
.net社区是否有最好的实践,如何让软件为大多数客户服务,而不强迫非技术用户下载更新/不同版本的.net框架?
我创建了一个文本节点并插入到我的文档中,如下所示:
#<Nokogiri::XML::Text:0x3fcce081481c "<%= stylesheet_link_tag 'style'%>">]>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下方法保存文档时:
File.open('ng.html', 'w+'){|f| f << page.to_html}
Run Code Online (Sandbox Code Playgroud)
我在实际文档中得到了这个:
<%= stylesheet_link_tag 'style'%>
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用转义并保存我的页面与我的erb标签完好无损?
谢谢!
从编译代码的纯粹速度角度来看,如果我使用100%XAML或100%代码隐藏或其间的某种组合,它会有所不同吗?代码隐藏中没有像if声明一样的逻辑- 它与XAML将加载内容元素的操作完全相同.
如果它确实有所作为,我怎么能测试它在速度方面有多大差异?
假设我们有一个DAL方法
public void BuyProduct(int productId, int quantity, int buyerId);
Run Code Online (Sandbox Code Playgroud)
在该方法中,我们需要调用2个存储过程:
创建2个SqlCommands是一个好习惯 - 每个存储过程一个并使用单个SqlConnection来执行这些命令?
要么
为每个SqlCommand创建单独的SqlConnection是否更好?
所以基本上我要问:在单个DAL方法中重复使用单个SqlConnection进行多个(2-4)SqlCommands是一个好习惯(显然在整个DAL中重用SqlConnection会很愚蠢)?
PS - 请不要问我为什么不能将2个存储过程合并为1.我的答案是 - 分离关注点.
这个问题说明了一切......我如何让用户从我的网站下载文件而不让他们看到该文件来自哪个链接?我知道可能需要像download.php这样的东西作为网关,但是过去那个阶段,我不知道接下来要编写什么脚本...如果它困扰你编写整个代码,那么一些函数名称就是我应该用得真的很方便!