728x90
// 이전 방식
// 심지어 내가 쓰는 방식이네 ㅡㅜ
class Request {
constructor(url, data, method) {
this.url = url;
this.method = method;
this.data = data;
}
}
이렇게 코드를 작성하면 계속 데이터를 전달해줘야하는 문제가 생긴다.(동감동감)
const request = new Request('http://localhost', {}, method);
//이런식으로 생성해야만 했음
Builder Pattern 적용
class Request {
constructor() {
this.url = '';
this.method = '';
this.data = null;
}
}
class RequestBuilder {
constructor() {
this.request = new Request();
}
forUrl(url) {
this.request.url = url;
return this;
}
useMethod(method) {
this.request.method = method;
return this;
}
setData(data) {
this.request.data = data;
return this;
}
build() {
return this.request;
}
}
let getRequest = new RequestBuilder()
.forUrl('https://blog.naver.com/pjt3591oo')
.useMethod('GET')
.build();
let postRequest = new RequestBuilder()
.forUrl('https://blog.naver.com/pjt3591oo')
.useMethod('POST')
.setData({ id: 'hg', password: 1234 })
.build();
// 단!!!! this 를 반환하여 체이닝 필요
728x90
'Web > JavaScript' 카테고리의 다른 글
[Generator] * 과 yield (0) | 2023.11.20 |
---|---|
[Design Pattern] 9. Module Pattern (0) | 2023.11.19 |
[Design Pattern] 7.Prototype Pattern (0) | 2023.11.17 |
[Design Pattern] 6. Decorator Pattern (0) | 2023.11.16 |
[Design Pattern) 5.Command Pattern (0) | 2023.11.14 |