设计模式(一)
1. 简单工厂模式
利用多态,建立一工厂,管理对不同逻辑类的实例化。
example:
1 #include <iostream> 2 3 class f 4 { 5 public: 6 virtual void show() = 0; 7 }; 8 9 class s1 : public f 10 { 11 public: 12 void show() 13 { 14 std::cout << "s1" <<std::endl; 15 } 16 }; 17 18 class s2 : public f 19 { 20 public: 21 void show() 22 { 23 std::cout << "s2" <<std::endl; 24 } 25 }; 26 27 class s3 : public f 28 { 29 public: 30 void show() 31 { 32 std::cout << "s3" <<std::endl; 33 } 34 }; 35 36 void Factory (f *&jiu, int num) 37 { 38 switch (num) 39 { 40 case 1: 41 jiu = new s1(); 42 jiu->show(); 43 break; 44 case 2: 45 jiu = new s2(); 46 jiu->show(); 47 break; 48 case 3: 49 jiu = new s3(); 50 jiu->show(); 51 break; 52 default: 53 jiu = NULL; 54 } 55 } 56 57 int main () 58 { 59 f *jiu = NULL; 60 Factory(jiu, 2); 61 62 return 0; 63 }
2. 策略模式
建立纯需类,作为对外接口。
3. 单一职责原则
就一个类而言,应该仅有一个引起它变化的缘由。
4. 开放-封闭原则
可拓展、不可修改。
在我们最初编写代码时,假设变化不会发生;当变化发生时,我们就创建抽象来隔离以后发生的同类变化。我们的目标时:面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。