cuốn sách gpt4 ai đã làm

Chế độ trang trí đang hoạt động

In lại Tác giả: Người biết Thời gian cập nhật: 2024-03-13 10:08:03 25 4
mua khóa gpt4 Nike

Bắt mắt một chút

Chế độ trang trí đề cập đến việc thêm một số chức năng bổ sung vào một đối tượng một cách linh hoạt và không xâm lấn mà không ảnh hưởng đến đối tượng ban đầu, chẳng hạn như câu lệnh I/O sau đây.
InpurStreamReader iReader = new inputStreamReader(new FileInputStream(new File("D:\abc.txt")));

Nếu D:\abc.txt được coi là một đối tượng được trang trí, các câu lệnh trên sẽ bao bọc đối tượng theo ba bước sau.

new File("D:\abc.txt") bao bọc đối tượng chuỗi thành một đối tượng Tệp. Lúc này, đối tượng Tệp chứa nội dung của chuỗi gốc.

FileInputStream(...) mới bao bọc đối tượng File thành một đối tượng FileinputStream Tại thời điểm này, FileInputStream chứa nội dung của đối tượng File gốc và chuỗi gốc.

new InputStreamReader(...) bao bọc đối tượng FileinputStream thành một đối tượng inputStreamReader. Tại thời điểm này, inputStreamReader chứa nội dung của đối tượng FileInputStream gốc, đối tượng File gốc và chuỗi gốc.

Có thể thấy rằng chế độ trang trí có thể cho phép đối tượng ban đầu được đóng gói nhiều lần và dần dần có các chức năng mạnh mẽ hơn. Do đó, trong quá trình phát triển, mỗi chức năng có thể được gói gọn theo mô-đun thông qua chế độ trang trí. Ví dụ: nếu bạn muốn thêm hàm X và Y vào đối tượng A theo trình tự, bạn chỉ cần bọc A hai lần. Chế độ trang trí này được sử dụng rộng rãi trong thiết kế I/O.

Chế độ trang trí bao gồm hai vai trò sau

1 vật trang trí

1) Vai trò xây dựng trừu tượng (Thành phần)

Giao diện trừu tượng của đối tượng được trang trí. Sau đó, đối tượng có thể được trang trí động thông qua một bộ trang trí.

2) Vai trò thành phần bê tông (ConcreteComponent)

Một đối tượng cụ thể là một lớp triển khai được xây dựng một cách trừu tượng.

2 người trang trí

1) Người trang trí

Lớp trừu tượng trang trí cần kế thừa từ Component và được dùng để trang trí (mở rộng) các phương thức được định nghĩa trong Component. Về mặt cú pháp, đối tượng được trang trí chứa tham chiếu đến đối tượng thực.

2) Vai trò của Người trang trí bê tông: Người trang trí bê tông, tức là một lớp triển khai của vai trò trang trí.

2. Thực chiến

1 mô tả

Giao diện Phone được sử dụng để xác định chức năng cơ bản của điện thoại di động, đó là call(). Lớp BasePhone là một lớp triển khai của Phone và triển khai phương thức được xác định bởi call(). SmallPhone là công cụ trang trí Điện thoại giúp mở rộng chức năng của Điện thoại. Phương pháp trang trí đầu tiên là AISmartPhone, bổ sung chức năng "trí tuệ nhân tạo" cho điện thoại; phương pháp trang trí thứ hai là AutoSizeSmartPhone, bổ sung chức năng "tự động chia tỷ lệ" cho điện thoại.

2 mã

a Vai trò xây dựng trừu tượng (Thành phần)

trình trang trí gói; // Vai trò thành phần trừu tượng (Thành phần) giao diện công cộng Điện thoại { void call();

b Thành phần bê tông (ConcreteComponent)

trình trang trí gói; // ConcreteComponent vai trò lớp công khai BasePhone triển khai Điện thoại { @Override public void call() { System.out.println("Call" } }

c Người trang trí

package trang trí; // Lớp trừu tượng công khai trang trí SmartPhone triển khai Điện thoại { điện thoại riêng; điện thoại công cộng (Điện thoại điện thoại) { super(); this.phone = phone } @Override public void call() { phone.call (); }

d Vai trò trang trí bê tông đầu tiên (ConcreteDecorator)

package trang trí; lớp công khai AISmartPhone mở rộng SmartPhone { public AISmartPhone(Phone phone) { super(phone); } // Thêm các chức năng mới cho điện thoại: trí tuệ nhân tạo public void aiFunction() { System.out.println("The phone has Artificial trí thông minh Các chức năng mạnh mẽ"); } public void call() { super.call(); aiFunction(); } }

e Vai trò trang trí bê tông đầu tiên (ConcreteDecorator)

trình trang trí gói; lớp công khai AutoSizeSmartPhone mở rộng SmartPhone { public AutoSizeSmartPhone(Phone phone) { super(phone); } // Thêm các tính năng mới cho điện thoại: tự động điều chỉnh kích thước điện thoại public void autoSize() { System.out.println("Mobile kích thước điện thoại Kích thước có thể được tự động thu nhỏ"); } public void call() { super.call(); autoSize(); } }

lớp kiểm tra f

trình trang trí gói; Kiểm tra lớp công khai { public static void main(String[] args) { //Chức năng điện thoại cơ bản System.out.println("--Chức năng điện thoại cơ bản--"); call(); // Điện thoại được trang bị AISmartPhone System.out.println("\n--Smartphone: Đã thêm chức năng AI--"); AISmartPhone = new AISmartPhone(basePhone); AISmartPhone.call(); // Điện thoại được trang trí bằng AutoSizeSmartPhone System.out.println("\n--Smartphone: Đã thêm chức năng tự động điều chỉnh tỷ lệ--"); ); autoSizeSmartPhone.call(); // Chiếc điện thoại sau khi được trang trí hai lần với AISmartPhone và AutoSizeSmartPhone System.out.println("\n--Smartphone: Đã thêm AI và chức năng tự động điều chỉnh tỷ lệ--"); smartPhone.call();

3 kết quả kiểm tra

--Chức năng điện thoại cơ bản--Thực hiện cuộc gọi điện thoại--Điện thoại thông minh: Đã thêm chức năng AI--Thực hiện cuộc gọi điện thoại có chức năng mạnh mẽ của trí tuệ nhân tạo--Điện thoại thông minh: Thêm chức năng tự động mở rộng quy mô--Kích thước của điện thoại để thực hiện cuộc gọi có thể là Tự động chia tỷ lệ - Điện thoại thông minh: Đã thêm AI và chức năng tự động chia tỷ lệ - thực hiện cuộc gọi điện thoại với chức năng mạnh mẽ của trí tuệ nhân tạo. Kích thước của điện thoại có thể được tự động thu nhỏ. Quá trình kết thúc với mã thoát 0.
25 4 0
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