刺身タンポポ職人なう

文系女子大生がエンジニアとして就職してその後

Factory Method ってなに?

他のクラスのインスタンス化の責任を負う必要がある普通の実装。

class Sample {
    class showName() {
        Name name = new AName();
        System.out.println(name.getName()); // I'm A
        Name name = new BName();
        System.out.println(name.getName()); // I'm B
    }
}

abstract class Name {
    abstract void getName();
}

class AName extends Name {
    void getName() {
        System.out.println ("I'm A");
    }
}

class BName extends Name {
    void getName() {
        System.out.println ("I'm B");
    }
}

インスタンスの生成は一箇所に集約して、責任を Factory に任せる実装

abstract class Factory {
     abstract Name factoryMethod();
}

public class NameFactory extends Factory {
    abstract Name factoryMethod();
        return new GetName();
    }
}

public abstract class GetName {
    public abstract void manA();
    public abstract void manB();
}

public class Name extends GetName {
    public void manA() {
        System.out.println ("I'm A");
    }
    public void manB() {
        System.out.println ("I'm B");
    }
}

class Sample {
    void hoge() {
        Factory factory = new NameFactory();
        Name name = factory.factoryMethod();

        name.manA(); // I'm A
        name.manB(); // I'm B
    }
}

Factory Method と Abstract Factory の違いを順に理解する | Futurismo

CPU の使用状況をチェックする方法

CPU の使用状況をチェックする方法 (sar -u)

$ sar -u
00:00:00    %usr    %sys    %wio   %idle
01:00:00       0       0       0     100

%usr プロセッサがユーザーモードになっている時間の割合が表示されます。

%sys プロセッサがシステムモードになっている時間の割合が表示されます。

%wio プロセッサがアイドル状態で入出力の完了を待っている時間の割合が表示されます。

%idle プロセッサがアイドル状態で入出力を待っていない時間の割合が表示されます。

一般に、%wio の値が大きい場合は、ディスクの処理速度が低下していることを意味します。

参照

http://docs.oracle.com/cd/E19504-01/805-1753/spmonitor-40118/index.html

いまさらながら、権限のおさらい

パーミッション

項目 内容
r 読み込み
w 書き込み
x 実行またはディレクトリの移動
ユーザー グループ その他
パーミッション r w x r w x r w x
8進数 4 2 1 4 2 1 4 2 1
設定値 合計値 合計値 合計値

chmodコマンド

現状の状態を変更したい場合はu+rw-xとか書いた方がいいが、元の状態に関わらず変更したいときは数字で指定する

[penguin@suzuki ~]$ touch chownfile 
[penguin@suzuki ~]$ chmod u+rw-x,go+r-wx chownfile 
[penguin@suzuki ~]$ ls -l chownfile 
-rw-r--r--. 1 penguin users 0 610 17:00 2014 chownfile 
[penguin@suzuki ~]$ chmod 664 chownfile 
[penguin@suzuki ~]$ ls -l chownfile 
-rw-rw-r--. 1 penguin users 0 610 17:00 2014 chownfile 
[penguin@suzuki ~]$ chmod 266 chownfile 
[penguin@suzuki ~]$ ls -l chownfile 
--w-rw-rw-. 1 penguin users 0 610 17:00 2014 chownfile