Java toString()与MVC
Java toString()与MVC,java,model-view-controller,tostring,presentation,Java,Model View Controller,Tostring,Presentation,toString()的API文档说明: 返回对象的字符串表示形式。总的来说 toString方法返回一个字符串,该字符串“以文本形式表示”此 反对结果应该是简洁但信息丰富的表示 这对一个人来说很容易阅读。建议所有 子类重写此方法 (强调矿山) 考虑到这一点,我为一个构建类型的类编写了一个toString(),该类本质上是(一些实现已剥离) @覆盖 公共字符串toString(){ Stringbuilder sb=新的Stringbuilder(“”); sb.append(this.getDe
toString()
的API文档说明:
返回对象的字符串表示形式。总的来说
toString方法返回一个字符串,该字符串“以文本形式表示”此
反对结果应该是简洁但信息丰富的表示
这对一个人来说很容易阅读。建议所有
子类重写此方法
(强调矿山)
考虑到这一点,我为一个构建
类型的类编写了一个toString()
,该类本质上是(一些实现已剥离)
@覆盖
公共字符串toString(){
Stringbuilder sb=新的Stringbuilder(“”);
sb.append(this.getDesc());
sb.append(“其中包含:
”);
for(Room r:this.getRooms()){
某人加上“- ”;
sb.append(r.getDesc());
某人追加(“
”);
}
某人追加(“
”);
使某人返回字符串();
}
给出类似于:
一套独立的学生公寓,包括:
- 基础研究
- 基本生活区
- 基本浴室
- 基本的卧室
Building
和Room
类都在模型中,并且这种输出格式肯定属于视图
我不确定我是否想得太多了,Java API是否不是用MVC编写的,或者是否有什么我不明白的地方。演示内容是否可以放入toString()
?我最好有一个单独的displayBuilding()
或类似的工具吗?toString()
在java世界中主要用作调试或在日志中显示数据的工具
出于您提到的目的,很明显,toString()
绝对不是工具
对于必须在视图中显示的数据,您应该非常明确,这些数据可以一起使用不同的模型,然后从建筑模型中设置值,然后将该模型发送到UI toString()
在java世界中主要用作调试或在日志中显示数据的工具
出于您提到的目的,很明显,toString()
绝对不是工具
对于必须在视图中显示的数据,您应该非常明确,这些数据可以一起使用不同的模型,然后从建筑模型中设置值,然后将该模型发送到UI 您正在使用
toString()
为视图生成HTML代码。这不是toString()
方法的预期用途。我认为,它主要用于生成调试信息,例如用于日志文件或调试器。这意味着“易于阅读”。HTML是包含在网页中的一种更具技术性的表示。这种方法的名称更像是render()
您正在使用toString()
为视图生成HTML代码。这不是toString()
方法的预期用途。我认为,它主要用于生成调试信息,例如用于日志文件或调试器。这意味着“易于阅读”。HTML是包含在网页中的一种更具技术性的表示。这种方法的名称更像是render()
IMHOObject::toString
在日志和调试中非常有用,因此,我将使用纯文本来呈现其输出
我的建议是:
- 使用诸如and method
之类的库快速获得纯文本输出ReflectionStringBuilder::toString
- 使用一个方法创建一个功能接口(例如
),方法HtmlRepresentable
在您想要有HTML对象表示的类中实现该方法toHtmlString
然后public interface HtmlRepresentable { String toHtmlString(); }
公共建筑实现HtmlRepresentable{ @凌驾 公共字符串toString(){ StringBuilder sb=新的StringBuilder(“”); sb.append(this.getDesc()); sb.append(“其中包含:
- ”);
for(Room r:this.getRooms()){
sb.追加(“
- ”+r.getDesc()+” ”); } 某人追加(“
Object::toString
在日志和调试中非常有用,因此,我将使用纯文本呈现其输出
我的建议是:
- 使用诸如and method
之类的库快速获得纯文本输出ReflectionStringBuilder::toString
- 使用一个方法创建一个功能接口(例如
),方法HtmlRepresentable
在您想要有HTML对象表示的类中实现该方法toHtmlString
然后public interface HtmlRepresentable { String toHtmlString(); }
公共建筑实现HtmlRepresentable{ @凌驾 公共字符串toString(){ StringBuilder sb=新的StringBuilder(“”); sb.append(this.getDesc()); sb.append(“其中包含:
- ”);
for(Room r:this.getRooms()){
sb.追加(“
- ”+r.getDesc()+” ”); } 某人追加(“
Show
typeclass提供实现。理论上,您还可以使用typeclass并为Show
typeclass提供实现
public Building implements HtmlRepresentable {
@Override
public String toString() {
StringBuilder sb = new StringBuilder("<p>");
sb.append (this.getDesc());
sb.append ("which contains: <br> <ul>");
for (Room r: this.getRooms()) {
sb.append("<li>" + r.getDesc() + "</li>");
}
sb.append("</ul>");
return sb.toString();
}