Singleton
概要
シングルトンは外部からのオブジェクトの生成を禁止し
代わりにオブジェクトへのアクセスの手段を提供することで
システム内に存在するオブジェクトが1つであることを保証する。
newを使ってオブジェクトを生成した場合、コンストラクタが
呼び出され初期化される。
しかし、システムの中にはこうした初期化が行われると
不都合な場合がある。
ロケールやLook&Feelなど
システム起動中にオブジェクトを1つだけ生成することを決めていたと
しても、それをオブジェクトを利用する側で管理するのは難しい。
そのためシングルトンが用いられる。
シングルトンの実現方法
・同じ型のインスタンスをクラス変数として宣言
・コンストラクタの可視性をprivateで宣言する。
・getInstance()クラスメソッドによってオブジェクトを返すようにする。
//Javaです public class Singleton{ private static Singleton singleton; //ここでインスタンスをクラス変数として宣言 //... private Singleton(){ //.... } //コンストラクタの可視性をprivateとして宣言 public static Singleton getInstance(){ if( singleton == null ){ singleton = new Singleton(); } return singleton; } //getInstance()クラスメソッドでオブジェクトを返す public synchronized Object getter(Object hoge){ return hoge; } public synchronized void setter(Object hoge){ //... } }
注意
オーバーライドするときはコンストラクタをprotectedまたは
publicにする必要があるので、シングルトンを実現するのは大変。
理解が深まったら追記
http://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3#cite_note-GoF-1Linuxのカーネルのバージョンが上がるたびにVMWareが起動しなくなる
こちらのサイトにある手順に従ったら無事起動するようになりました
http://blog.b0ne.me/ubuntu/vmware-error-when-kernel-upgrade
$ uname -r 3.x.x-x-generic $ sudo ln -s /usr/src/linux-headers-3.x.x-x-generic/include/generated/uapi/linux/version.h /usr/src/linux-headers-3.x.x-x-generic/include/linux/version.h $ sudo vmware-modconfig --console --install-all
これで普通に起動するようになりました
python-mecabを入れてみる
mecab -v mecab of 0.98
MeCabのバージョンに合わせたmecab-pythonをインストールしなければなりません。そのため、上記のコマンドでMeCabのバージョンを調べます。
wget http://sourceforge.net/projects/mecab/files/mecab-python/0.98/mecab-python-0.98.tar.gz $ tar xvzf mecab-python-0.98.tar.gz $ cd mecab-python-0.98 $ python setup.py build $ sudo python setup.py build
python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import MeCab >>>
電王戦のBGM
Massive Attack - Teardrop
Invincible - Muse
The Chemical Brothers - Swoon
Sigur Rós - Inní mér syngur vitleysingur
python-twitterをcentosで使う
yumでeasy_installをインストール
# yum install python-setuptools
easy_installでpython-twitterをインストール
# easy_install python-twitter
# vi test.py
------------------------------------------------------------------------------------------------------------------ #!/usr/bin/env python
# -*- coding: utf-8 -*-
import twitter
api = twitter.Api(
consumer_key = '******',
consumer_secret = '******',
access_token_key = '******',
access_token_secret = '******'
,cache=None)
s = u"てst"
api.PostUpdate(status=s) -------------------------------------------------------------------------------------------------------------------
consumer_key, consumer_secret, access_token_key, access_token_secretは
https://dev.twitter.comでアプリを登録してもらえます