理解java中的设计模式
我在某个地方读到,开发人员应该始终开发接口,然后实现该接口。我想我只是想学习这些构建器模式。。但这是我的用例 我有一个中心班。。。说理解java中的设计模式,java,Java,我在某个地方读到,开发人员应该始终开发接口,然后实现该接口。我想我只是想学习这些构建器模式。。但这是我的用例 我有一个中心班。。。说ProcessFile 现在,我正在编写它可以处理的两种格式,一种是csv,另一种是json 如何设计这些类 我猜是这样的: public interface CustomFormat{ //couple of signatures } public class csv implements CustomFormat{ } public class jso
ProcessFile
现在,我正在编写它可以处理的两种格式,一种是csv,另一种是json
如何设计这些类
我猜是这样的:
public interface CustomFormat{
//couple of signatures
}
public class csv implements CustomFormat{
}
public class json implements CustomFormat{
}
public class ProcessFiles{
//somehow uses that CustomFormat interface??
}
实现这一点的最佳方式是什么?实现这一点的最佳方式是什么
我不会在接口名称中使用Custom这个词。大概
FileFormat.java
public interface FileFormat {
public void setFormat(int quantity);
}
CSV.java
public class CSV implements FileFormat{
@Override
public void setFormat(int quantity) {
// TODO Auto-generated method stub
}
}
public class JSON implements FileFormat{
@Override
public void setFormat(int quantity) {
// TODO Auto-generated method stub
}
}
JSON.java
public class CSV implements FileFormat{
@Override
public void setFormat(int quantity) {
// TODO Auto-generated method stub
}
}
public class JSON implements FileFormat{
@Override
public void setFormat(int quantity) {
// TODO Auto-generated method stub
}
}
以javaPlease42的答案为基础。我会将ProcessFiles重命名为FileProcessor或类似的东西。一个好的经验法则是用名词命名类,用动词描述名词的功能。下面是一个它可能看起来像什么的例子
public class FileProcessor {
public void process(CustomFormat file) {
// pass in the interface, that way you can use any implementing class
// like csv or json
}
}
谷歌的“战略模式”,你可能会发现一些有用的例子。看起来不错,但如果应用程序结构是不变的(没有动态),我真的建议你不要遵循任何特定的模式。