sách gpt4 ăn đã đi

Sự kết hợp giữa hình ảnh và văn bản để giải thích mẫu đơn Java

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 27 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này giải thích Java singleton sample bằng hình ảnh và văn bản, được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

ps: Trước hết chúng ta cần biết singleton là gì, tại sao nên sử dụng singleton, lợi ích của việc sử dụng nó là gì và các vấn đề khác.

1: Mẫu singleton trong Java là một mẫu thiết kế phổ biến. Có một số cách để viết mẫu singleton. Ở đây chúng tôi chủ yếu giới thiệu hai loại: singleton kiểu lười biếng và singleton kiểu đói khát.

Mẫu Singleton có các đặc điểm sau:

  1. Một lớp singleton chỉ có thể có một phiên bản. 2. Một lớp singleton phải tạo một thể hiện duy nhất của riêng nó. 3. Lớp singleton phải cung cấp phiên bản này cho tất cả các đối tượng khác.

  Mẫu singleton đảm bảo rằng chỉ có một phiên bản của một lớp và nó tự khởi tạo và cung cấp phiên bản này cho toàn bộ hệ thống. Trong các hệ thống máy tính, nhóm luồng, bộ đệm, đối tượng nhật ký, hộp thoại, máy in và đối tượng trình điều khiển card đồ họa thường được thiết kế dưới dạng đơn lẻ. Các ứng dụng này ít nhiều đều có chức năng quản lý tài nguyên. Mỗi máy tính có thể có nhiều máy in, nhưng chỉ có một bộ đệm máy in để ngăn hai lệnh in được xuất ra máy in cùng một lúc. Mỗi máy tính có thể có một số cổng giao tiếp và hệ thống phải quản lý tập trung các cổng giao tiếp này để ngăn hai yêu cầu gọi một cổng giao tiếp cùng một lúc. Nói tóm lại, mục đích của việc chọn chế độ đơn là để tránh các trạng thái không nhất quán và tránh các chính sách dài hạn.

2: Phong cách đàn ông lười biếng.

Đầu tiên viết lớp singleton.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
công cộng lớp học kiểm tra đơn lẻ {
   //Lớp singleton lười biếng Tự khởi tạo trong lệnh gọi đầu tiên. 
   riêng tư kiểm tra đơn lẻ() {}
     riêng tư tĩnh singletontest đơn = vô giá trị ;
     //phương pháp nhà máy tĩnh 
     công cộng tĩnh kiểm tra singleton lấy trường hợp() {
        nếu như (đơn == vô giá trị ) { 
          đơn = mới kiểm tra đơn lẻ();
          hệ thống.out.println( "Tạo một lần" );
       
       trở lại đơn;
     }
     
     công cộng vô hiệu trình diễn(){
       hệ thống.out.println( "Tôi đang trình diễn" );
     }
 
}

Đây là mã trực tiếp, kèm theo giải thích chi tiết trong mã.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
công cộng lớp học singletontest2 {
 
   công cộng tĩnh vô hiệu main(chuỗi[] args) {
     // todo phương thức tự động tạo stub
     //Cố ý viết và lấy 2 lần để tạo 2 đối tượng
     singletontest singleton=singletontest.getinstance();
     singletontest singleton2=singletontest.getinstance();
     
     // Đối tượng singleton chỉ được tạo một lần, nhưng vẫn có thể viết nó hai lần và tất cả các phương thức đều có thể được gọi, nhưng hãy xem bên dưới
     singleton.hiển thị();
     singleton2.hiển thị();
     
     // Hai đối tượng có biểu thức giống nhau
     nếu như (đơn lẻ == đơn lẻ2){
       hệ thống.out.println( "Biểu diễn chuỗi của đối tượng này:" );
       hệ thống.out.println( "độc thân:" +singleton.tostring());
       hệ thống.out.println( "singleton2:" +singleton2.tostring());
     }

Sự kết hợp giữa hình ảnh và văn bản để giải thích mẫu đơn Java

Từ hình trên có thể thấy rằng ngay cả khi có thêm một số đối tượng được tạo ra thì cũng chỉ có một thể hiện đối tượng đơn lẻ ở phía dưới và cách biểu diễn chuỗi của đối tượng được tạo cũng giống nhau. Một số người thường nghi ngờ là hai. đối tượng là Nó trông như thế nào? Tôi sẽ giải thích cho bạn bên dưới. , trước khi viết về phong cách lười biếng này, tôi cần chú ý đến nó. Nó không an toàn cho luồng. Nhiều trường hợp đơn lẻ có thể xuất hiện trong một môi trường đồng thời. Có nhiều cách để giải quyết nó, chẳng hạn như khóa đồng bộ hóa, tĩnh bên trong. các lớp, v.v. Ở đây chúng ta chủ yếu nói về các lớp bên trong tĩnh, lớp nào tốt hơn. .

?
1
2
3
4
5
6
7
8
9
10
công cộng lớp học đơn lẻ3 { 
   riêng tư tĩnh lớp học người giữ đơn { 
     riêng tư tĩnh cuối cùng thể hiện singleton3 = mới đơn lẻ3(); 
  
   riêng tư đơn lẻ3 (){} 
   công cộng tĩnh cuối cùng singleton3 lấy ví dụ() { 
     hệ thống.out.println( "sáng tạo đơn lẻ" );
     trở lại singletonholder.instance; 
  

Gọi:

?
1
2
3
4
5
6
7
singleton3 singleton3=singleton3.getinstance();
     singleton3 singleton4=singleton3.getinstance();
     nếu như (đơn lẻ3 == đơn lẻ4){
       hệ thống.out.println( "Biểu diễn chuỗi của đối tượng này:" );
       hệ thống.out.println( "singleton3:" +singleton3.tostring());
       hệ thống.out.println( "singleton4:" +singleton4.tostring());
     }

Biểu đồ kết quả:

Sự kết hợp giữa hình ảnh và văn bản để giải thích mẫu đơn Java

Ở đây tôi cũng tạo ra hai đối tượng để minh họa. Điều kỳ diệu là việc tạo đơn lẻ này có phải là một đối tượng khác được tạo thành công không? Câu trả lời là: Mặc dù được in hai lần và có hai tên đối tượng nhưng cách biểu diễn chuỗi của đối tượng vẫn giống nhau và mọi người đều biết cách sử dụng static, tức là đối tượng singleton đã được tạo khi lớp được tải. Nó sẽ không được tạo lại sau này. Ngay cả khi phương thức getinstance() được gọi sau, lớp bên dưới vẫn là một đối tượng singleton công khai.

Tương tự, tôi viết một lớp bình thường để tạo hai đối tượng cùng lúc và in phương thức tostring() của chúng, như sau:

?
1
2
3
4
5
6
7
8
9
10
11
qubie qb1= mới qubie();
     qubie qb2= mới qubie();
     nếu như (qb1 == qb2){
       hệ thống.out.println( "Biểu diễn chuỗi của đối tượng này:" );
       hệ thống.out.println( "singleton3:" +qb1.tostring());
       hệ thống.out.println( "singleton4:" +qb2.tostring());
     } khác {
       hệ thống.out.println( "Biểu diễn chuỗi của đối tượng này:" );
       hệ thống.out.println( "singleton3:" +qb1.tostring());
       hệ thống.out.println( "singleton4:" +qb2.tostring());
     }

Sự kết hợp giữa hình ảnh và văn bản để giải thích mẫu đơn Java

Có thể thấy rằng cách biểu diễn chuỗi của các đối tượng là khác nhau.

3: Người độc thân Trung Quốc đói khát.

Lớp singleton kiểu Hungry Nó đã được tự khởi tạo khi lớp được khởi tạo.

?
1
2
3
4
5
6
7
8
công cộng lớp học singleton1 {
  riêng tư singleton1() {}
  riêng tư tĩnh cuối cùng singleton1 đơn = mới singleton1();
  //phương pháp nhà máy tĩnh 
  công cộng tĩnh singleton1 getinstance() {
    trở lại đơn;
  }
}

Bởi vì đây là một phương thức được sửa đổi tĩnh nên nó được tạo khi lớp được tải và sẽ không bị thay đổi sau này, vì vậy nó an toàn cho luồng.

Trên đây là toàn bộ nội dung bài viết này hi vọng nó sẽ giúp ích cho việc học của mọi người và cũng mong mọi người ủng hộ mình.

Liên kết gốc: http://blog.csdn.net/jjhahage/article/details/78277105.

Cuối cùng, bài viết về sự kết hợp giữa hình ảnh và văn bản để giải thích mẫu đơn Java có ở đây. Nếu bạn muốn biết thêm về sự kết hợp giữa hình ảnh và văn bản để giải thích mẫu đơn Java, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các phần liên quan. Tôi hy vọng tất cả các bạn ủng hộ blog của tôi trong tương lai! .

27 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress