DesignPattern/23.TemplateMethodPattern/2.Code/FingerprintModule.h

97 lines
1.6 KiB
C
Raw Normal View History

2019-11-10 02:50:30 +00:00
#ifndef __FINGERPRINTMODULE_H__
#define __FINGERPRINTMODULE_H__
#include <stdio.h>
// <20><><EFBFBD><EFBFBD>
class FingerprintModule
{
public:
FingerprintModule(){}
void getImage(){
printf("<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>\n");
}
void output(){
printf("ָ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n\n");
}
virtual bool isSafeMode() = 0;
virtual void processImage() = 0;
// <20>ӽ<EFBFBD><D3BD><EFBFBD>
virtual void encrypt() = 0;
virtual void decrypt() = 0;
// ģ<><EFBFBD><E5B7BD>
void algorithm(){
// 1.<2E><>ͼ
getImage();
// 2.<2E><>ȫģʽ<C4A3>¼<EFBFBD><C2BC>ܺͽ<DCBA><CDBD><EFBFBD>
if (isSafeMode()){
// 2.1. <20><><EFBFBD><EFBFBD>
encrypt();
// 2.2. <20><><EFBFBD><EFBFBD>
decrypt();
}
// 3.<2E><><EFBFBD><EFBFBD>Image
processImage();
// 4.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
output();
}
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class FingerprintModuleA :public FingerprintModule
{
public:
FingerprintModuleA(){}
void processImage(){
printf("ʹ<EFBFBD><EFBFBD> <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ͼ<EFBFBD><CDBC>\n");
}
bool isSafeMode(){
printf("<EFBFBD><EFBFBD>ȫģʽ\n");
return true;
}
void encrypt(){
printf("ʹ<EFBFBD><EFBFBD>RSA<EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
void decrypt(){
printf("ʹ<EFBFBD><EFBFBD>RSA<EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class FingerprintModuleB :public FingerprintModule
{
public:
FingerprintModuleB(){}
void processImage(){
printf("ʹ<EFBFBD><EFBFBD> <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ͼ<EFBFBD><CDBC>\n");
}
bool isSafeMode(){
printf("<EFBFBD>ǰ<EFBFBD>ȫģʽ\n");
return false;
}
void encrypt(){}
void decrypt(){}
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class FingerprintModuleC :public FingerprintModule
{
public:
FingerprintModuleC(){}
void processImage(){
printf("ʹ<EFBFBD><EFBFBD> <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ͼ<EFBFBD><CDBC>\n");
}
bool isSafeMode(){
printf("<EFBFBD><EFBFBD>ȫģʽ\n");
return true;
}
void encrypt(){
printf("ʹ<EFBFBD><EFBFBD>DH<EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
void decrypt(){
printf("ʹ<EFBFBD><EFBFBD>DH<EFBFBD><EFBFBD>Կ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
};
#endif //__FINGERPRINTMODULE_H__