- 某图形界面系统提供了各种不同形状的按钮,客户端代码科针对这些按钮进行编程,用户可能会改变要求使用不同的按钮,原始设计如图1所示。
画出利用开闭原则重构后的类图。
结合题目分析这个类图,题目中说到“用户可能会改变要求使用不同的按钮”,而且要求我们利用开闭原则画出重构后的类图。
开闭原则:可以增加按钮,但是不能修改原来的代码。
我们都知道抽象比较稳定,所以这里使用抽象,那用接口还是抽象类呢?我的选择是抽象类,因为这里需要抽象的是按钮,抽象的物,不是按钮的操作,所以我们选择抽象类。
public abstract class AbstractButton{
public abstract void view();
}
public class CircleButton extends AbstractButton{
public void view(){
}
}
public class RactangleButton extends AbstractButton{
public void view(){
}
}
public class UserForm{
pirvate AbstractButton button;
public void setAbstractButton(AbstractButton b){
this.button = b;
}
public void display(){
button.view(){
}
}
}
- 某基于Java的C/S系统的“登陆功能”通过如图2登陆类Login实现。请使用单一职责原则对其进行重构。
一看到这个类图我们就想,这个类图功能真强大,啥都能干。但是考虑一下复用性,简直没有复用性可言。
单一原则修改后:
public class Test{
public statci void main(String[] args){
}
}
public class LoginForm{
private UserDao userDao;
public void setUserDao(UserDao dao){
this