Hiện tại, tôi có một vài đối tượng đơn lẻ trong đó tôi đang kết hợp các biểu thức chính quy và các đối tượng của tôi Pattern
được định nghĩa như vậy:
class Foobar {
private final Pattern firstPattern =
Pattern.compile("some regex");
private final Pattern secondPattern =
Pattern.compile("some other regex");
// more Patterns, etc.
private Foobar() {}
public static Foobar create() { /* singleton stuff */ }
}
Nhưng một người khác đã nói với tôi vào một ngày khác rằng đây là phong cách tồi tệ và Pattern
s luôn phải được xác định ở cấp độ lớp và trông giống như thế này:
class Foobar {
private static final Pattern FIRST_PATTERN =
Pattern.compile("some regex");
private static final Pattern SECOND_PATTERN =
Pattern.compile("some other regex");
// more Patterns, etc.
private Foobar() {}
public static Foobar create() { /* singleton stuff */ }
}
Thời gian tồn tại của đối tượng cụ thể này không dài như vậy và lý do chính của tôi khi sử dụng cách tiếp cận đầu tiên là vì tôi không có ý nghĩa gì với việc giữ lấy Pattern
nó một khi đối tượng bị GC'd.
Bất kỳ đề xuất / suy nghĩ?