Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 어댑터 패턴
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package adapterPattern;

public interface SearchService {
SearchResult search(String keyword);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import adapterPattern.SearchService;

public class SearchServiceTolrAdapter implements SearchService {
private TolrClient tolrClient = new TolrClient();

@Override
public SearchResult search(String keyword) {
// keyword를 tolrClient가 요구하는 형식으로 변환
TolrQuery tolrQuery = new TolrQuery(keyword);

// TolrClient 기능 실행
QueryResponse response = tolrClient.query(tolrQuery);

SearchResult result = convertToResult(response);
return result;
}

private SearchResult convertToResult(QueryResponse response) {
List<TolrDocument> tolrDocs = response.getDocumentList().getDocuments();
List<SearchDocument> docs = new ArrayList<SearchDocument>();
for(TolrDocument tolrDoc: tolrDocs) {
docs.add(new SearchDocument(tolrDocs.getId(), ...));
}
return new SearchResult(docs);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package adapterPattern;

public class SearchServiceTolrAdapter2 extends TolrClient {

public SearchResult search(String keyword) {
// keyword를 tolrClient가 요구하는 형식으로 변환
TolrQuery tolrQuery = new TolrQuery(keyword);

// TolrClient 기능 실행
QueryResponse response = super.query(tolrQuery);

// TolrClient의 결과를 SearchResult로 변환
SearchResult result = convertToResult(response);
return result;
}

private SearchResult convertToResult(QueryResponse response) {
List<TolrDocument> tolrDocs = response.getDocumentList().getDocuments();
List<SearchDocument> docs = new ArrayList<SearchDocument>();
for(TolrDocument tolrDoc: tolrDocs) {
docs.add(new SearchDocument(tolrDocs.getId(), ...));
}
return new SearchResult(docs);
}
}