我对单一职责原则很困惑。该原则指出,类更改的原因应该只有一个。
我面临的问题是,对方法的任何更改或做事中的任何逻辑更改都会更改类。例如,考虑以下类:
class Person{
public void eat(){ };
public void walk(){ };
public void breathe(){ };
public void run(){ };
public void driveCar(Car car){ };
}
Run Code Online (Sandbox Code Playgroud)
鲍勃叔叔将其描述为应该只有一个人/演员负责更改。我有以下两个问题:
java oop design-patterns single-responsibility-principle solid-principles
我对恢复合并时在“恢复分支”下拉列表中选择哪个分支有点困惑。我不小心将“test-1”分支合并到了 Master 分支中。现在我想恢复它,但是我会单击恢复按钮,如下所示:
单击该按钮将显示以下弹出窗口:
我真的很困惑应该在下拉列表中选择哪个分支。我想恢复 test-1 和 master 的合并。?
在高耦合环境中,更改一个模块会影响另一个模块。好的,但我看不出这怎么可能(除了更改方法签名或返回类型)?
好吧,如果我更改一个类,只有在以下情况下它才能破坏其他类中的代码:
出于同样的原因,依赖抽象(接口)是很好的,这样我们就可以保证定义的方法将在那里。
除此之外,更改一个类还能如何影响另一个依赖类?
language-agnostic oop dependencies design-patterns interface
我正在尝试编写一个实现Comparable接口的'Cup'类。
我的代码:
class Cup<T> implements Comparable<T>{
public T radius;
public T height;
public Cup(T radius, T height){
this.radius = radius;
this.height = height;
}
public double getVolume(){
return (double) radius * (double) radius* (double) height* 3.14 ; // throwing error
}
public int compareTo(Object cup){
if(getVolume()== ((Cup) cup).getVolume()){ // cannot access java.lang.Comparable
return 0;
}
else if(getVolume() > ((Cup) cup).getVolume()){
return 1;
}
else if(getVolume() < ((Cup) cup).getVolume()){
return -1;
}
return -2;
}
}
class test{
public static void …Run Code Online (Sandbox Code Playgroud) PLEASE NOTE - I am asking WHY? It would be very useful if you could give an example where changing the return type actually breaks the code
why can't I change the return type of an overridden method (other than covariant return types).
class Parent{
public void sayhello(){ ... };
}
class Child extends Parent{
public String sayhello() { . . .}
}
Run Code Online (Sandbox Code Playgroud)
Now if I run the following code:
class test{
public static void main(String[] args){
Parent p = …Run Code Online (Sandbox Code Playgroud) java ×3
oop ×2
dependencies ×1
git ×1
gitlab ×1
interface ×1
jvm ×1
overriding ×1