Policy-based Design - Simple Example

Simple Example

Presented below is a simple (contrived) example of a C++ hello world program, where the text to be printed and the method of printing it are decomposed using policies.

#include #include template class HelloWorld : private OutputPolicy, private LanguagePolicy { using OutputPolicy::print; using LanguagePolicy::message; public: // Behaviour method void run const { // Two policy methods print(message); } }; class OutputPolicyWriteToCout { protected: template void print(MessageType const &message) const { std::cout << message << std::endl; } }; class LanguagePolicyEnglish { protected: std::string message const { return "Hello, World!"; } }; class LanguagePolicyGerman { protected: std::string message const { return "Hallo Welt!"; } }; int main { /* Example 1 */ typedef HelloWorld HelloWorldEnglish; HelloWorldEnglish hello_world; hello_world.run; // prints "Hello, World!" /* Example 2 * Does the same, but uses another language policy */ typedef HelloWorld HelloWorldGerman; HelloWorldGerman hello_world2; hello_world2.run; // prints "Hallo Welt!" }

You could easily write another OutputPolicy by adding a new class with the member function print and take that as the new OutputPolicy.

Read more about this topic:  Policy-based Design

Famous quotes containing the word simple:

    Armies, for the most part, are made up of men drawn from simple and peaceful lives. In time of war they suddenly find themselves living under conditions of violence, requiring new rules of conduct that are in direct contrast to the conditions they lived under as civilians. They learn to accept this to perform their duties as fighting men.
    Gil Doud, U.S. screenwriter, and Jesse Hibbs. Walter Bedell Smith (Himself)

    From the war of nature, from famine and death, the most exalted object which we are capable of conceiving, namely, the production of the higher animals, directly follows. There is grandeur in this view of life, with its several powers, having been breathed into a few forms or into one; and that, whilst this planet has gone cycling on according to the fixed law of gravity, from so simple a beginning endless forms most beautiful and most wonderful have been, and are being, evolved.
    Charles Darwin (1809–1882)