русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Реалізація патерну Strategy


Дата додавання: 2014-10-07; переглядів: 834.


 

Наведемо реалізацію програми для стиснення файлів, спроектованого із застосуванням патерну Strategy.

 

#include <iostream>

#include <string>

 

// Иерархия классов, определяющая алгоритмы сжатия файлов

class Compression

{

public:

virtual ~Compression() {}

virtual void compress( const string & file ) = 0;

};

 

class ZIP_Compression : public Compression

{

public:

void compress( const string & file ) {

cout << "ZIP compression" << endl;

}

};

 

class ARJ_Compression : public Compression

{

public:

void compress( const string & file ) {

cout << "ARJ compression" << endl;

}

};

 

class RAR_Compression : public Compression

{

public:

void compress( const string & file ) {

cout << "RAR compression" << endl;

}

};

 

 

// Класс для использования

class Compressor

{

public:

Compressor( Compression* comp): p(comp) {}

~Compressor() { delete p; }

void compress( const string & file ) {

p->compress( file);

}

private:

Compression* p;

};

 

 

int main()

{

Compressor* p = new Compressor( new ZIP_Compression);

p->compress( "file.txt");

delete p;

return 0;

}


<== попередня лекція | наступна лекція ==>
Опис патерну Strategy | Результати застосування патерну Strategy


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн