Having lots of parameters in a constructor

后端 未结 4 1751
长发绾君心
长发绾君心 2020-12-25 12:19

Is it wrong to have a lot of parameters inside a constructor? Like 10 to 15 parameters? Because I was designing a class where a constructor will have lots of parameters, for

4条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-25 12:21

    You could decompose Person into Name and Contact.

    public class ComposedPerson {
        private Name name;
        private int age;
        private Contact contact;
    
        public ComposedPerson(Name name, int age, Contact contact) {
            this.name = name;
            this.age = age;
            this.contact = contact;
        }
    
        public static void main(String... args) {
            Name name = new Name("John");
            Contact contact = new Contact("12345", "john@doe.com");
            ComposedPerson person = new ComposedPerson(name, 45, contact);
       }
    

    Sample Name. See how I use a telescoping constructor to allow for optional arguments.

    public class Name {
        private String fName;
        private String lName;
        private String mInitial;
    
        public Name(String fName) {
            this(fName, null, null);
        }
    
        public Name(String fName, String lName) {
            this(fName, lName, null);
        }
    
        public Name(String fName, String lName, String mInitial) {
            this.fName = fName;
            this.lName = lName;
            this.mInitial = mInitial;
        }
    } 
    

提交回复
热议问题