2012-05-07 25 views

Trả lời

3

Mã sau đây sẽ cung cấp cho bạn vĩ độ và kinh độ. getInstance() sẽ trả về cá thể của lớp đó.

Criteria myCriteria = new Criteria(); 
    myCriteria.setCostAllowed(false); 
    LocationProvider myLocationProvider = LocationProvider.getInstance(myCriteria); 
    Location myLocation = myLocationProvider.getLocation(300); 
    latitude = myLocation.getQualifiedCoordinates().getLatitude(); 
    longitude = myLocation.getQualifiedCoordinates().getLongitude(); 
29

Các lớp sử dụng phương pháp getInstance() và các loại tương tự có trong số singleton design pattern. Về cơ bản, sẽ chỉ có một ví dụ của lớp học cụ thể đó và bạn nhận được nó với getInstance().

Trong trường hợp này, LocationProvider sẽ chỉ bao giờ có một phiên bản do thiết bị cụ thể. Thay vì tạo các phiên bản mới của nó, bạn có thể sử dụng cá thể được chia sẻ bằng cách sử dụng phương thức getInstance(). Mẫu đơn thường được sử dụng trong Java khi xử lý những thứ như các trình quản lý dữ liệu và các giao diện phần cứng, nhưng nó không nên được sử dụng quá nhiều, vì nó hạn chế bạn thành một cá thể đơn lẻ.

3

Phương thức getInstance() được gọi là phương pháp nhà máy. Nó được sử dụng để tạo ra lớp singleton. Điều đó có nghĩa là chỉ có một thể hiện của lớp đó sẽ được tạo ra và những người khác sẽ nhận được tham chiếu của lớp đó.

+0

Điều này không đúng. Ví dụ, 'Calendar.getInstance() == Calendar.getInstance()' là 'false'. – gwg

Các vấn đề liên quan