命令查询原则

命令查询原则(command-query separation principle)
摘自《UML和模式运用》Craig Larman著 李洋 等译

任何方法都可能是如下情况之一:
1)执行动作(更新,调整…..)的命令方法,这种方法通常具有改变对象状态等副作用,并且是void(没有返回值的)。
2) 向调用者返回数据的查询,这种方法没有副作用,不会永久性地改变任何对象的状态。
一个方法不能同时属于以上两种类型。
所以查询或者getter方法不会作任何修改,而命令也不会有任何返回值。
举个反面例子:
Missile m = new Missibe();
//看上去对我无妨!
String name = m.getName();
……….
public class Missile
{
…………….
public String getName()
{
launch();//发射导弹
return  name;
}
…………….
}

你可能感兴趣的:(UML)