Thực đơn
Facade_pattern Thí dụVí dụ sau đây che phần API calendar phức tạp bởi một facede thân thiện hơn. Kết quả là:
Date: 1980-08-2020 days after: 1980-09-09
import java.util.*;/** "Facade" */class UserfriendlyDate{ GregorianCalendar gcal; public UserfriendlyDate(String isodate_ymd) { String[] a = isodate_ymd.split("-"); gcal = new GregorianCalendar(Integer.parseInt(a[0]), Integer.parseInt(a[1])-1 /* !!! */, Integer.parseInt(a[2])); } public void addDays(int days) { gcal.add(Calendar.DAY_OF_MONTH, days); } public String toString() { return String.format("%1$tY-%1$tm-%1$td", gcal);}}/** "Client" */class FacadePattern{ public static void main(String[] args) { UserfriendlyDate d = new UserfriendlyDate("1980-08-20"); System.out.println("Date: "+d); d.addDays(20); System.out.println("20 days after: "+d); }}
class Ink { public: void CheckInk() { cout << "+ Check ink done" << "\n"; }};class Paper { public: void CheckPaper() { cout << "+ Check paper" << "\n"; } void GetPaperForPrinting() { cout << "+ Get paper for printing" << "\n"; } };class PrinterEngine { public: void LoadDocument() { cout << "+ Load document from computer" << "\n"; } void FormatDocumentData() { cout << "+ Format data" << "\n"; } void WarmUp() { cout << "+ Engine was warm up" << "\n"; } void PrepareLaser() { cout << "+ Prepare laser" << "\n"; } void InkToPaper() { cout << "+ Ink to paper" << "\n"; }};/* Facade */class PrinterController { public: void Print() { Ink ink; Paper paper; PrinterEngine engine; ink.CheckInk(); paper.CheckPaper(); engine.LoadDocument(); engine.FormatDocumentData(); paper.GetPaperForPrinting(); engine.PrepareLaser(); engine.WarmUp(); engine.InkToPaper(); } };/** Client **/int main() { cout << "I want to print document" << "\n"; PrinterController printer; printer.Print(); cout << "I had printed document" << "\n";}
Thực đơn
Facade_pattern Thí dụLiên quan
Facade Facade pattern Farad Faraday Future Fazadinium bromide Falcade Facatativá Facidina Fahad Sebil Fahad HadeedTài liệu tham khảo
WikiPedia: Facade_pattern http://c2.com/cgi/wiki?FacadePattern https://web.archive.org/web/20060704105637/http://...