界面隔离原则只是单一责任原则的替代吗?
我认为,如果我的类满足SRP,则无需提取多个接口.
所以ISP看起来像解决方案,以防我们因某些原因打破SRP.
我对吗 ?
design-patterns single-responsibility-principle solid-principles interface-segregation-principle
有人可以为AutoResetEvent.Reset()方法引入一个用例吗?何时以及为什么我想使用这种方法?我理解WaitOne和Set但这对我来说还不太清楚.
我正在使用.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) 有一条规则是不要重新推送被推送到远程存储库的提交.只要我理解了这一点的一般原因,我不清楚它是否也适用于这种情况:
让我们说我正在开发一些功能,哪些开发需要几天时间.所以,我创建分支MyFeature,checkout to it,并提交一些东西.由于工作需要几天,我不想将它保存在我的本地机器中,因此为了备份,我将此分支推送到远程.
完成工作后,我想以某种方式将它合并到主人.
我的问题:
我需要最快的方法将字节数组转换为短数据音频数据.
音频数据字节数组包含以这种方式放置的两个音频通道的数据:
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) 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关键字是成员访问修饰符.私有访问是最不宽容的访问级别.私有成员只能在类的主体或声明它们的结构体中访问
如何为使用线程的方法编写单元测试。
在下面的示例中如何测试 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# ×5
.net ×2
java ×2
git ×1
git-rebase ×1
interface-segregation-principle ×1
junit ×1
nunit ×1
oracle ×1
rebase ×1
reset ×1
single-responsibility-principle ×1
unit-testing ×1