Java – how to avoid code duplication of many small classes?

I have different courses, including English, Spanish, French, etc

Class English{
    String name = "English";
    String alias = "ENG";
}

Class French{
    String name = "French";
    String alias = "Fre";
}

Similar to other languages

There is also a class called language:

Class Language{
    String name = "";
    String alias = "";
}

According to my request, I want to put English / French / Spanish into my language course

Class ABC{

    main(){
        Language lan = new Language();
        Object obj = getObject(1);
        if(obj instanceof English){
            lan.name = ((English)obj).name;
            lan.aliasName = ((English)obj).aliasName;
        }
    }

}

If I have 10 languages, do I need to write the same code for 10 different languages? In this case, how do I make a single method and pass these parameters as parameters? Something like this:

setVariablesForLanguage(String className,Object obj)

Here I only show 2 variables, but my class will contain more than 100 variables My actual requirement is that I set my language variables from one of the languages

Solution

If you want to make several subclasses, each with a constant value, you shouldn't make them classes I suggest making them constant instances of the language:

public static final Language ENGLISH = new Language("English","Eng");
public static final Language FRENCH  = new Language("French","Fre");

And provide a matching constructor for language (actually, it looks more like enum, but I won't pour too much on you right away.)

Then in your main code, don't check whether it is an example of English, French, etc Just check whether it is a language, and then call it.

Language lan = new Language();
Object obj = getObject(1);
if(obj instanceof Language){
    lan.name = ((Language)obj).name;
    lan.aliasName = ((Language)obj).aliasName;
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>