1. 程式人生 > >《設計模式》學習筆記——介面卡模式

《設計模式》學習筆記——介面卡模式

介面卡模式(Adapter Pattern)是作為兩個不相容的介面之間的橋樑。 將一個類的介面轉換成另一個類的介面,使原本因為介面不相容的類能夠相互工作。 這種型別的設計模式屬於結構型模式,它結合了兩個獨立介面的功能。 這種模式涉及到一個單一的類,該類負責加入獨立的或不相容的介面功能。

AdapterPattern.h

#pragma once
#include<iostream>
#include<string>

class Current18V
{
public:
	virtual void useCurrent18V() = 0;
};

class Current220V
{
public:
	void useCurrent220V(void)
	{
		std::cout << "當前使用電壓220V" << std::endl;

	}
};

class AdapterPattern:public Current18V
{
public:
	AdapterPattern(Current220V * current220V):m_current220V(current220V) {};
	~AdapterPattern() { delete m_current220V; };

	virtual void useCurrent18V(void)
	{
		std::cout << "介面卡內部" << std::endl;
		m_current220V->useCurrent220V();
		std::cout << "適配18V" << std::endl;
	}
private:
	Current220V * m_current220V;
};

AdapterPattern.cpp

#include "AdapterPattern.h"

mainTest.cpp

#include<iostream>
#include"AdapterPattern.h"

int main(void)
{
	Current220V* current220V = new Current220V;
	AdapterPattern* adapterPattern = new AdapterPattern(current220V);

	adapterPattern->useCurrent18V();

	delete adapterPattern;
	adapterPattern = nullptr;
	adapterPattern = nullptr;

	system("pause");
	return 0;
}