Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
Có nên code inner class, class trong class
Anh ơi, có nên code inner class :
class A {
    class Dog {
        private String name;
        private String type;
    }
}
Như vậy, việc sử dụng inner class đã phá vỡ quy tắc Single responsibility trong Solid, vậy khi nào dùng inner class là hợp lý nhất ạ
  • 1 Answer(s)
  • 676 Views
  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Enlightened
tvd12 Enlightened
Việc sử dụng inner class không hề phá vỡ quy tắc Single responsibility trong Solid bởi vì quy tắc này nói rằng: mỗi lớp mỗi hàm nên thực hiện 1 chức năng, như vậy việc em khai báo 2 lớp ở cùng 1 nơi nhưng chúng vẫn thực hiện đúng chức năng của mình thì vẫn ok.
Inner class nên dùng khi các lớp inner này có liên quan mật thiết và bổ trợ cho lớp public, thường sẽ là các lớp private.
Ví dụ:
public class StringConverter {
	
	private stringToIntConverter = new StringToIntConverter();
	private stringToLongConverter = new StringToLongConverter();
	
	public  T convert(String value, Class outType) {
		if (outType == int.class) {
			return stringToIntConverter.convert(value);
		}
		if (outType == long.class) {
			return stringToLongConverter.convert(value);
		}
	}

	private final class StringToIntConverter implements Converter {
		// logic
	}

	private final class StringToLongConverter implements Converter {
		// logic
	}

}
  • 0
  • Reply
0%

Media

Add New Media

Media Details

Uploaded On
File Name
File Type
File Size
Dimension