小编ant*_*nth的帖子

接口隔离原则只是单一责任原则的替代吗?

界面隔离原则只是单一责任原则的替代吗?

我认为,如果我的类满足SRP,则无需提取多个接口.

所以ISP看起来像解决方案,以防我们因某些原因打破SRP.

我对吗 ?

design-patterns single-responsibility-principle solid-principles interface-segregation-principle

26
推荐指数
2
解决办法
2133
查看次数

AutoResetEvent重置方法

有人可以为AutoResetEvent.Reset()方法引入一个用例吗?何时以及为什么我想使用这种方法?我理解WaitOne和Set但这对我来说还不太清楚.

c# reset autoresetevent

15
推荐指数
1
解决办法
5764
查看次数

使用.Net从Oracle DB读取数据比使用Java快10倍

我正在使用.Net和Java从Oracle DB中读取1百万条记录.在.Net中,我在Java ojdbc6瘦客户端中使用ODP.Net.在.Net读取数据大约需要10秒钟,在Java中需要将近2分钟.为什么会有这么大的差异?

这是一个代码:

.净:

      try
        {
            DateTime dt1 = DateTime.Now;

            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=myService)));User Id=myId;Password=myPass;";

            con.Open();
            string cmdQuery = "SELECT * FROM DROPME";

            OracleCommand cmd = new OracleCommand(cmdQuery);
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;

            int i = 0;
            OracleDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Object o1 = reader.GetValue(0);
                Object o2 = reader.GetValue(1);
                Object o3 = reader.GetValue(2);
                Object o4 = reader.GetValue(3);
                Object o5 = reader.GetValue(4);
                Object o6 = reader.GetValue(5);
                Object o7 = reader.GetValue(6);                    
                i++; …
Run Code Online (Sandbox Code Playgroud)

.net c# java oracle

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

重新定位远程功能/错误/主题(私有)分支

有一条规则是不要重新推送被推送到远程存储库的提交.只要我理解了这一点的一般原因,我不清楚它是否也适用于这种情况:

让我们说我正在开发一些功能,哪些开发需要几天时间.所以,我创建分支MyFeature,checkout to it,并提交一些东西.由于工作需要几天,我不想将它保存在我的本地机器中,因此为了备份,我将此分支推送到远程.

完成工作后,我想以某种方式将它合并到主人.

我的问题:

  1. 假设没有其他人永远不会签出并拉出MyFeature分支,并将他的工作基于这个分支的提交(为什么有人想拉一些随机分支?),是否可以重新定义这样的远程分支?(使用-force开关)
  2. 如果由于某种原因仍然不可取(虽然我想了解这个原因)有什么替代方案?简单合并?但如果是这样,之后,我仍然希望从本地和远程存储库中删除MyFeature分支.那么它与(1)的不同之处是什么?我仍然通过完全删除它来改变历史.
  3. 以上提到的场景是罕见还是不典型?我的意思是,在搜索答案时,阅读有关git-rebase的教程和SO问题,总是强调这种重新定位远程分支的危险,但是从未考虑过其他类似的用例.恕我直言,当天更长时间地处理某些功能是很常见的,我认为没有谨慎的开发人员不应该只在他的计算机上进行更改......

git rebase git-rebase

6
推荐指数
1
解决办法
156
查看次数

快速转换字节数组到短数字音频数据

我需要最快的方法将字节数组转换为短数据音频数据.

音频数据字节数组包含以这种方式放置的两个音频通道的数据:

C1C1C2C2 C1C1C2C2 C1C1C2C2 ...

where

C1C1 - two bytes of first channel

C2C2 - two bytes of second channel
Run Code Online (Sandbox Code Playgroud)

目前我使用这样的算法,但我觉得有更好的方法来执行这个任务.

byte[] rawData = //from audio device
short[] shorts = new short[rawData.Length / 2];
short[] channel1 = new short[rawData.Length / 4];
short[] channel2 = new short[rawData.Length / 4];
System.Buffer.BlockCopy(rawData, 0, shorts, 0, rawData.Length);
for (int i = 0, j = 0; i < shorts.Length; i+=2, ++j)
{
    channel1[j] = shorts[i];
    channel2[j] = shorts[i+1];
}
Run Code Online (Sandbox Code Playgroud)

c#

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

访问私人班级成员

public class Class1
{
    private object field;

    public Class1(Class1 class1)
    {
        this.field = class1.field;
    }

    private void Func(Class1 class1)
    {
        this.field = class1.field;
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码编译和工作.但为什么?我一直认为私有成员只能在类范围内访问.MSDN也这样说:

private关键字是成员访问修饰符.私有访问是最不宽容的访问级别.私有成员只能在类的主体或声明它们的结构体中访问

.net c#

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

如何对使用线程的方法进行单元测试?

如何为使用线程的方法编写单元测试。

在下面的示例中如何测试 someMethod 方法?

    public class SomeClass {

    private final SomeOtherClass someOtherClassInstance = IoC.getInstance(SomeOtherClass.class);

    private final ExecutorService executorService = Executors.newCachedThreadPool();

    public void someMethod() {
        executorService.execute(new Runnable() {
            @Override
            public void run() {
                someOtherClassInstance.someOtherMethod();
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

为此,java 和 .net 中是否有任何解决方案?

c# java junit nunit unit-testing

2
推荐指数
1
解决办法
7311
查看次数