gpt4 book ai didi

java - Java中类设计的最佳方式: An example

转载 作者:行者123 更新时间:2023-12-01 18:33:25 24 4
gpt4 key购买 nike

以下问题描述的最佳设计是:

一名“学生”有4支笔,颜色为蓝色红色绿色橙色

这是 Pen 类 -

Class Pen{
String color;
//Getters & setters
public write(){
// Write some thing using color
}

}

第一种方法:

Class Studend{
//Here pens are stored in a HashMap with its Color as Key
Map<String,Pen> pens = new HashMap<String,Pen>();

Public Student(Pen p){
pens.put(p.getColor(),p);//Just an example
}
//more code here....

}

第二种方式:

Class Student{
Pen bluePen;
Pen greenPen;
Pen redPen;
Pen orangePen;
//Here all the pens are made as class variables.

//Getters and Setters...
}

注意:我需要能够迭代所有笔并执行一些常见操作,例如

for(Pen pen: pens){ 
pen.write();
}

第一种方式更容易。

此外,需要单独访问 Pen,例如 student.getRedPen();,这可以通过第二种方式轻松完成。但在第一种方式中,我每次都需要这样做

 if(student.getPens().containsKey("Red")){ 
Pen redPen = student.getPens().get("Red");
//some more code here
}

哪个更好?还有其他更好的方法来实现这一目标吗?

提前致谢!!

最佳答案

这是一个原型(prototype)。您可以添加您需要的任何其他方法:

public class Student {

private List<Pen> pens = new ArrayList<Pen>();

// Constructor + methods
}

public class Pen {

public enum Color {
RED, BLUE, GREEN, ORANGE;
}

private Color color;

public Pen(Color color) {
this.color = color;
}

// Getters & setters
public void write() {
// Write some thing using color
}

}

关于java - Java中类设计的最佳方式: An example,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23130817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com