GAEにてGoogleのログイン関係の操作を行う際に、
UserServiceインタフェースを使用します。
例えばGoogleアカウントのニックネームを使用する場合は、
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, " + user.getNickname());
} else {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
}
こんな感じで記述します。まぁGoogleのGAEスタートアップの
コードそのまんまなんですが。
で、ちょっと気になったのがここ。
>>UserServiceFactory.getUserService();
ファクトリクラス使ってオブジェクトを生成してるよう。
という事は何らかの条件によって生成されるUserServiceの
実装クラスが変わるのか・・・?
なんとなく気になったので調べてみました。
早速appengine-api-1.0-sdk-1.3.1.jarを解凍して
UserServiceFactory.classをJADで逆コンパイルした結果……!
return new UserServiceImpl();
実装クラスをnewしてるだけだったーー!
…という訳で特に条件分岐とかはしていませんでした。
まぁいつでも切り替えられるようにという意味では
確かにこういう作りにしておくのが安牌なのでしょうね。
勉強になります。
無駄に気になった疑問は解消されたので、
今度はログインURL周りについてかこうと思います。
が、そのまえに仕事に戻ります。
PC-G850とg800とApple Silicon
-
ポケコンPC-G850を手に入れたついでに、そのエミュレータであるg800をApple Siliconなmacでコンパイルしたので、そのメモ。
基本的にはbrew環境のSDL2を使ってコンパイルしただけで、手直しはほんのちょっとです。brewだけインストール済みって人はbrew install
sdl2だ...
4 週間前
0 件のコメント:
コメントを投稿