adapter pattern


緒論
次に、深さデータモードの理由を理解しました.clientからサーバから受信したデータを自分のDTOに変更するための関数を作成しました.
友達がその関数を見ているとき、これはアダプタモードではありませんか?私が言ったとき、私はとても好奇心があって、彼を認識しました.
世界にはデザインがたくさんあるようです.
adapter pattern
私から見れば、ネストモードはオブジェクトを使用時に互換性を持たせるために変換されます.
ウィキペディア:
アダプタモード(Adapter pattern)は、クラスのインタフェースをユーザが望む他のインタフェースに変換するモードであり、互換性のないインタフェースのために一緒に動作できないクラスを一緒に動作させることができる.
静的言語と動的言語の違いだと思ってください(^^7)

オブジェクトアダプタ
もし私がサーバーに要求したら、応答を受け取りました.
すべての反応はSnake携帯ケースですキャラメルを使っているのでこのままスキップするわけにはいきません
だから私はこのSnake caseを例にしたオブジェクトを私が使うCamel caseオブジェクトに変えます.

// Response interface 
interface UserDataResponse {
  user_name: string,
  user_id: number,
  user_profile_img: string,
}

// DTO interface
interface User {
  userName: string,
  userId: number,
  userProfileImg: string,
}

const UserDataAdapter = (response: UserDataResponse): User => ({
	userName: response.user_name,
  	userId: response.user_id,
  	userProfileImg: response.userProfileImg,
});
  
const getResponse = () => {
	return axios.post('/user');
}


const main = async () => {
	const { data } = await getResponse();
  	const user = UserDataAdapter(data);
  // user를 사용하는 코드들...
}
クラスの深さ
interface chickenMeet {
	닭가슴살: number,
    	닭다리: number,
}
    
interface GgungMeet {
	꿩가슴살: number,
    	꿩다리: number,
}

interface{
	getChickenMeet: () => chickenMeet;
}
  
interface{
	getGgungMeet: () => GgungMeet;
}

class{
	getChickenMeet(){
    	alert('꼬꼬덱!');
      	return 'Chicken Meet';
      // 문자열 아니고 닭고기 객체입니다. 꿩 고기와 구조가 다릅니다 
    }
}

class{
	getGgungMeet(){
    	alert('꾸꿔꿩!');
      	return 'Ggung Meet';
      // 문자열 아니고 꿩 객체입니다. 닭 고기와 구조가 다릅니다 
    }
}

class 꿩 대신 닭 {
  	constructor(){this.=}
	getGgungMeet(){
    	return this..getChickenMeet();
    }
}