Facade pattern

Trong lập trình hướng đối tượng, facade pattern là một mẫu thiết kế phần mềm nhằm cung cấp một giao diện (interface) đơn giản giúp che giấu phần mã cấu trúc phức tạp phía sau, ví dụ như là một thư viện lớp (class library ). Facade pattern có thể:

  • Cung cấp một giao diện đơn giản cho việc thực thi nhiều hành vi phổ biến trong một hành vi duy nhất.
  • Giúp cho một ứng dụng trở nên đơn giản hơn trong việc kiểm soát, thay thế hành vi (method) sử dụng và sử dụng các đặt tên phù hợp để làm cho ứng dụng dễ hiểu hơn;
  • Giảm sự phụ thuộc của các khối mã bên ngoài với các hành vi tính toán phức tạp trong hệ thống nhằm đạt được sự phụ thuộc lỏng lẻo;

Facade thường được sử dụng trong việc thực thi các cuộc gọi từ xa đòi hỏi tiêu tốn nhiều tài nguyên (thời gian và năng lượng tính toán).[1]

Nó cũng được sử dụng trên 1 hệ thống với nhiều triển khai phức tạp nhằm mục đích ẩn đi sự phức tạp đó, giúp lập trình viên tập trung vào mục đích thay vì hành vi của các chức năng.

Ví dụ sau đây cung cấp một facade đơn giản hơn trên các hành vi phúc tạp:

/* Complex parts */

class CPU {
    public void freeze() { ... }
    public void jump(long position) { ... }
    public void execute() { ... }
}

class Memory {
    public void load(long position, byte[] data) { ... }
}

class HardDrive {
    public byte[] read(long lba, int size) { ... }
}

/* Facade */

class ComputerFacade {
    private CPU processor;
    private Memory ram;
    private HardDrive hd;

    public ComputerFacade() {
        this.processor = new CPU();
        this.ram = new Memory();
        this.hd = new HardDrive();
    }

    public void start() {
        processor.freeze();
        ram.load(BOOT_ADDRESS, hd.read(BOOT_SECTOR, SECTOR_SIZE));
        processor.jump(BOOT_ADDRESS);
        processor.execute();
    }
}

/* Client */

class You {
    public static void main(String[] args) {
        ComputerFacade computer = new ComputerFacade();
        computer.start();
    }
}

Liên kết ngoài

[sửa | sửa mã nguồn]

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ “P of EAA: Remote Facade”. martinfowler.com. Truy cập ngày 13 tháng 11 năm 2023.
Chúng tôi bán
Bài viết liên quan
Tại sao Rosaria pick rate rất thấp và ít người dùng?
Tại sao Rosaria pick rate rất thấp và ít người dùng?
Nạp tốt, buff crit rate ngon ,đi đc nhiều team, ko kén đội hình, dễ build, dễ chơi. Nhưng tại sao rất ít ng chơi dùng Rosaria, pick rate la hoàn từ 3.0 trở xuống mãi ko quá 10%?
Đàn ông có để ý đến việc phụ nữ bị béo không?
Đàn ông có để ý đến việc phụ nữ bị béo không?
Cùng xem các bạn nam có quan tâm đến cân nặng không nhé
Hướng dẫn tân binh Raid Boss - Kraken (RED) Artery Gear: Fusion
Hướng dẫn tân binh Raid Boss - Kraken (RED) Artery Gear: Fusion
Để nâng cao sát thương lên Boss ngoài DEF Reduction thì nên có ATK buff, Crit Damage Buff, Mark
Giới thiệu anime: Hyouka
Giới thiệu anime: Hyouka
Hyouka (氷菓 - Băng Quả) hay còn có tên là "Kotenbu" (古典部 - Cổ Điển Hội) là 1 series light novel được sáng tác bởi nhà văn Honobu Yonezawa và phát hành bởi nhà xuất bản Kadokawa Shoten