1 Востаннє редагувалося timedoru (17.12.2012 21:28:30)

Тема: Шаблон проектування «Фасад» с++

Допоможіть будь ласка по простому пояснити про шаблон проектування "Фасад", його плюси, мінуси, для чого він...Дивлячись на різних сайтах інформацію про нього, все так заумно написано, що трудно зрозуміти, хотілось би дізнатися про шаблон вашими словами(не заумними). Прошу пробачення за таке питання.

2 Востаннє редагувалося HetmanNet (17.12.2012 21:11:17)

Re: Шаблон проектування «Фасад» с++

Патерни? А не простіше сказати шаблон чи шаблон проектування? Досить губити українську мову - розвивайте її, а не смітіть запозиченнями.

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

3

Re: Шаблон проектування «Фасад» с++

HetmanNet написав:

Патерни? А не простіше сказати шаблон чи шаблон проектування? Досить губити українську мову - розвивайте її, а не смітіть запозиченнями.

Слово "Паттерн" замінив на "Шаблон". Я просто думав, що слово паттерн є в українській мові, постараюся більше не губити українську мову.

4

Re: Шаблон проектування «Фасад» с++

На вікіпедії про нього нормально написано.

Можу привести один простий зрозумілий приклад на словах.

Візьмемо комп'ютер. Нам потрібно реалізувати такі класи:
CPU, Memory, HardDrive та інші. Це все буде підсистемами.

Фасадом буде клас Computer, який наприклад буде виконувати метод executeTask()

Трохи коду:

#include <iostream>
using namespace std;

class CPU {
    public:
        int execute(int command, int data) {}
};

class Memory {
    public:
        int readData(int from) {}
        void saveData(int to) {}
};
 
class HardDrive {
    public:
        int readData(int from) {}
        void saveData(int to, int data) {}
};

class Computer {
    private:
        CPU cpu;
        Memory mem;
        HardDrive hd;
        
    public:
    void task1() {
        int data = mem.readData(1);
        data = cpu.execute(1, data);
        data = cpu.execute(2, data);
        hd.saveData(1, data);
    }
};


int main() {
    
    Computer pc;
    pc.task1();

    return 0;
}