Wzorce projektowe
budowniczy
[wzorzec projektowy] Dostarcza mechanizm do konwersji danych z konkretnego formatu wejścowego do dowolnego formatu wyjściowego.Budowa wzorca projektowego
class CSomeData
{
public:
enum DataTypeE { E_CHAR, E_FONT_SIZE, E_MARGINS, E_UNKNOWN };
DataTypeE m_eDataType;
char m_cChar;
int m_iSize;
int m_iMarginLeft;
int m_iMarginRight;
};
class IConverter
{
public:
virtual std::string getResult() const = 0;
virtual void parse( const CSomeData & someData ) = 0;
};
class CDirector
{
typedef std::vector < CSomeData > VDataT;
VDataT m_vData;
public:
void loadData( const char * sData );
void convert( IConverter & converter ) const
{
for( VDataT::const_iterator i = m_vData.begin(); i != m_vData.end(); i++ )
converter.parse( * i );
}
};
class CConverter_TXT
: public IConverter
{
public:
virtual std::string getResult() const;
virtual void parse( const CSomeData & someData );
};
class CConverter_HTML
: public IConverter
{
public:
virtual std::string getResult() const;
virtual void parse( const CSomeData & someData );
};
Opis szczegółowy
Budowniczy
(ang. builder) - wzorzec projektowy, który dostarcza mechanizm do konwersji danych
z konkretnego formatu wejściowego
do dowolnego formatu wyjściowego. Wzorzec zapewnia łatwy mechanizm dostarczania nowych formatów danych wyjściowych bez konieczności modyfikacji obiektu zarządzającego (tzw. kierownika).
Zastosowanie
Niniejszy wzorzec stosuje się gdy:
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.