我提出了以下实用程序类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySqlConnection
{
private static String dbUrl = "jdbc:mysql://localhost:3306/database";
private static String dbUsername = "root";
private static String dbPassword = "mysql";
public static Connection getConnection()
{
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
} catch (ClassNotFoundException e) {
System.out.println("Could not load JDBC driver: " + e.getMessage());
} catch (SQLException e) {
System.out.println("Could not connect to DB: " + e.getMessage());
}
return connection;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:我不想从我的方法返回null …
根据Robert C. Martin的说法,SRP表示:
一个班级改变的理由绝不应该是一个原因.
但是,在他的书" 清洁代码"第3章:函数中,他展示了以下代码块:
public Money calculatePay(Employee e) throws InvalidEmployeeType {
switch (e.type) {
case COMMISSIONED:
return calculateCommissionedPay(e);
case HOURLY:
return calculateHourlyPay(e);
case SALARIED:
return calculateSalariedPay(e);
default:
throw new InvalidEmployeeType(e.type);
}
}
Run Code Online (Sandbox Code Playgroud)
然后陈述:
这个功能有几个问题.首先,它很大,当添加新的员工类型时,它会增长.其次,它显然不止一件事.第三,它违反了单一责任原则(SRP),因为改变的原因不止一个.[强调我的]
首先,我认为SRP是为类定义的,但事实证明它也适用于函数.其次,这个功能有多个原因需要改变?我只能看到它因员工的变化而发生变化.
是否有人试图将JRebel与Mule一起使用而不是典型的应用服务器?如果是这样,你能描述一下你的经历吗?
据我所知,目前,Mule并没有得到JRebel团队的正式支持.但是,我想知道是否可能有一些解决方法来解决这个问题.
在以下代码块中:
try ( /* resources declaration */ ) {
// some dangerous code
} catch (Exception e) {
// error handling and reporting
}
Run Code Online (Sandbox Code Playgroud)
如果会发生什么,都在里面的代码try
块和自动close()
声明抛出异常?哪一个会陷入困境catch
?他们都?只有其中一个?如果是这样,哪一个?
如果try
成功但close
不是?是否会输入捕获块?
在VB.NET中,以下声明数组的方式有什么区别吗?
- Dim cargoWeights(10) as Double
- cargoWeights = New Double(10) {}
Run Code Online (Sandbox Code Playgroud)
’这是两个独立的陈述。他们不应该一个接一个地处决。
据我所知,第一个只是声明一个数组变量,该变量保存值“Nothing”,直到将某个数组对象分配给它为止。换句话说,它还没有初始化。
但是第二个声明呢?“=”符号是否意味着变量已经被初始化并且不会保存“Nothing”?它是否会指向一个包含 11 个默认 Double 值 (0.0) 的一维数组?
编辑:
根据MSDN网站:
以下示例声明一个最初不指向任何数组的数组变量。
将twoDimStrings( , ) 变暗为字符串
(...) 变量twoDimStrings 的值为Nothing。
来源:http ://msdn.microsoft.com/en-us/library/18e9wyy0(v=vs.80).aspx
我知道,在C中,每个函数都会创建一个框架,并且当使用它的函数结束时,每个框架都会自动释放.相同的逻辑是否适用于Objective-C方法?它们在执行时是否在堆栈上创建框架?