2013-06-27 5 views
1

와 부하 사용하는 방법, 당신은저장하고 Twitter4j에서 Twitter4j

User user = twitter.showUser(userID); 

지금, 나는 텍스트 파일이 사용자를 저장하려면, 다음과 같이 사용자 개체를 얻을. UsertoString() 메서드를 사용하고 있습니다.

UserJSONImpl{id=xxxxxx, name='xxxx xxxxx', screenName='xxxxxx', ... } 

질문 :

  1. UsertoString() 방법을 사용하여 합법적 인 목적을 저장하기위한

    그것은 나에게 다음과 같은 것을 준다?

  2. UserJSONImpl 텍스트를 사용하여 사용자를로드하는 방법은 무엇입니까?

User user = new User(UserJSONImpl);
+0

해결책을 찾았습니까? –

답변

0

나는 이것에 대한 toString()에 직접 의존하는 것이이 방법의 변경이 통제 불능이기 때문에 나쁜 아이디어라고 생각 : 나는 다음과 같은 일을해야합니다. 예를 들어 형식이 변경되거나 새 필드가 추가되면 어떻게됩니까? 데이터를 비 직렬화 할 때 어떻게 알 수 있습니까?

당신은 예를 JSON을 작성하는 GSON를 사용하기위한 표준 형식으로 User 객체를 작성하는 라이브러리를 사용할 수

-하지만 여전히 당신이 User의 내부 표현입니다 UserJSONImpl 개체를 처리해야하지 좋다.

어쨌든 User 개체의 변경 위험에 여전히 노출 될 수 있습니다. User 개체를 사용하여 문제가되는 도메인과 관련된 개체를 만든 다음이 개체를 유지하는 것이 좋습니다.

Twitter4J User -> problem domain object 변환을 담당하는 구성 요소가 다른 Twitter4J User 개체를 처리 할 수 ​​있고 응용 프로그램에 일관된보기를 제공한다는 아이디어가 있습니다. 더 많은 상황이 없이는 이것이 과잉 공격일지도 모르지만, 이것을 더 잘 판단 할 수 있어야합니다. 나는 이것이 약간 도움이되기를 바랍니다!

+0

왜'Twitter4j'는 자신의 출력으로'User'를 초기화하는 공식 함수가 없습니까? 이상한 질문입니까? – Sait

+0

@ zagy 라이브러리의 관점에서 볼 때'User' 객체의 유일한 소스는 Twitter에서 왔기 때문에 (예 :'UserJSONImpl'에서) 구조를 숨 깁니다. 도서관에서 만든 객체를 소비하고 직접 만들지는 않을 것입니다. – Jonathan

관련 문제