设计模式个人备忘(享元模式,strategy, templete strategy)



设计模式C++实现(9)——享元模式

常见设计模式的解析和实现(C++)之十六-Strategy模式

http://sourcemaking.com/design_patterns/strategy/cpp/1

http://www.vincehuston.org/dp/strategy.html

template<typename STRATEGY>
class Stat {
public:
   void readVector( int v[], int n ) {
      m_impl.sort( v, n );
      m_min = v[0];
      m_max = v[n-1];
      m_median = v[n/2];
   }
   ...
private:
   STRATEGY  m_impl;
};

class SortBubble {
   void sort( int v[], int n ) {
   ...

class SortShell {
   void sort( int v[], int n ) {
   ...

int main( void ) {
   const int NUM = 9;
   int       array[NUM];
   srand( time(0) );
   cout << "Vector: ";
   for (int i=0; i < NUM; ++i) {
      array[i] = rand() % 9 + 1;
      cout << array[i] << ' ';
   }
   cout << '\n';
   Stat<SortBubble>  one;
   one.readVector( array, NUM );
   cout << "min is " << one.getMin() << ", max is " << one.getMax()
        << ", median is " << one.getMedian() << '\n';

   Stat<SortShell>  two;
   two.readVector( array, NUM );
   cout << "min is " << two.getMin() << ", max is " << two.getMax()
        << ", median is " << two.getMedian() << '\n';
}

// Vector: 8 3 1 9 7 2 2 9 7
// Bubble: 1 2 2 3 7 7 8 9 9
// min is 1, max is 9, median is 7
// Shell:  1 2 2 3 7 7 8 9 9
// min is 1, max is 9, median is 7


posted on 2017-07-18 18:28  wgwyanfs  阅读(117)  评论(0编辑  收藏  举报

导航