欢迎光临散文网 会员登陆 & 注册

计算机专业的学生都要使用电脑,下课需要关闭电脑 // 计算机类 public class Compute

2023-03-18 22:29 作者:酸奶公园  | 我要投稿

计算机专业的学生都要使用电脑,下课需要关闭电脑

//

计算机类

public

class Computer

{

public

void

saveCurrentTask

(){

//

do something }

public

void

closeService

(){

//

do something }

public

void

closeScreen

(){

//

do something }

public

void

closePower

(){

//

do something }

public

void close

() {

saveCurrentTask

();

closeService

();

closeScreen

();

closePower

(); } }

26

实例

2

//

public class Person{

private

Computer c;

...

public

void

clickCloseButton

(){

//

现在你要开始关闭计算机

,

正常只需

要调用

close()

方法

//

但发现

Computer

方法

都是公开

,

于是写下以下

关闭的流程

c.saveCurrentTask

();

c.closePower

();

c.close

();

//

或是

以下的

操作

c.closePower

();

//

还可能是以下的操作

c.close

();

c.closePower

(); } }

27

实例

2

//

计算机

public

class Computer{

private

void

saveCurrentTask

(){ //do something }

private

void

closeService

(){ //do something }

private

void

closeScreen

(){ //do something }

private

void

closePower

(){ //do something }

public

void close

(){

saveCurrentTask

();

closeService

();

closeScreen

();

closePower

();

}

}


根据迪米特原则,我们需要减少对象之间的依赖关系,使得一个对象不需要知道太多关于其他对象的信息,可以通过中间对象来进行通信。因此,我们可以对上述代码进行优化:


计算机类只需要公开一个关闭方法,其它方法都设为私有,由计算机类自己来调用这些私有方法。Person类不需要知道计算机类的细节,只需要调用计算机类的关闭方法即可。


计算机类:


public class Computer {

private void saveCurrentTask() {

//do something

}

private void closeService() {

//do something

}

private void closeScreen() {

//do something

}

private void closePower() {

//do something

}

public void close() {

saveCurrentTask();

closeService();

closeScreen();

closePower();

}

}


Person类:


public class Person {

private Computer c;

...

public void clickCloseButton() {

c.close();

}

}


这样做可以减少对象之间的耦合,也方便了代码的维护。


计算机专业的学生都要使用电脑,下课需要关闭电脑 // 计算机类 public class Compute的评论 (共 条)

分享到微博请遵守国家法律