コマンドプロンプトのpushdコマンド

コマンドプロンプトでカレントディレクトリを移動するにはcdを使う。 cd /d d:\tempのように/dオプションを使えば別のドライブに移動できる。 今まで当たり前のようにディレクトリの移動にはcdを使ってきたが、pushdというcdより素敵なコマンドを発見したので使ってみる。(Windows7) pushdの利点 pushdコマンドはcdと同様にカレントディレクトリを移動できるが以下の利点がある。 pushdを実行した後、popdで元のディレクトリに戻れる 現在のドライブとは別のドライブに移動できる \server\hoge\fugaのようなUNCパスに移動できる popdで元のディレクトリに戻る pushdでカレントディレクトリを移動すると移動前のカレントディレクトリがディレクトリスタックに保存されていく。 pushdを引数なしで実行すると現在のディレクトリスタックを表示する。 popdを実行すると直前に保存したパスに移動され、そのパスはディレクトリスタックから削除される。 C:\temp>pushd C:\ C:\>pushd Windows C:\Windows>pushd Logs # 引数なしのpushdでディレクトリスタックを表示 C:\Windows\Logs>pushd C:\Windows C:\ C:\temp # popdで移動前のディレクトリに戻る C:\Windows\Logs>popd C:\Windows>popd C:\>popd C:\temp> 別のドライブに移動 C:\temp>pushd E:\test E:\test> UNCパスに移動 UNCパスをpushdすると空きドライブに自動的に割り当てられ、移動できる。 popdで元のディレクトリに戻るとドライブの割り当ては解除される。 E:\test>pushd \\server1\UserData\UserData\test Z:\test> Z:\test>net use ステータス ローカル名 リモート名 ネットワーク名 -------------------------------------------------------------------------- OK Z: \\server1\UserData Microsoft Windows Network コマンドは正常に終了しました。 Z:\test>popd E:\test>net use 新しい接続は記憶されます。 一覧にエントリが存在しません。 pushdでZドライブが割り当られ、popdで割り当ては解除された。

Generation Gapパターンとは?

最近関わっているプロジェクトでソースコードを自動生成するツールがあってそのツールでGeneration Gapパターンという聞いたことのないデザインパターンを使っていた。 はじめて聞いたデザインパターンだったので調べてみた。 Generation Patternとは、ソースコードを自動生成ツールがあることを前提としており、ソースコードを自動生成した後、そのコードに手を加えると再度自動生成した際に手を加えた部分が消えてしまうので、サブクラスを作ってそこに手を加えるというもの。 Javaのクラスを自動生成するツールをPythonで作ってみた。 このツールを実行すると名前、年齢、体重をフィールドとSetter、Getter、toStringメソッドを持つHumanクラスを自動生成する。 実行すると以下のようなクラスが生成される。 public class Human{ protected String name; protected int age; protected double weight; public Human(String name, int age, double weight){ this.name = name; this.age = age; this.weight = weight; } public String toString(){ return "name=" + this.name + ", " + "age=" + this.age + ", " + "weight=" + this.weight; } } このHumanクラスには手を加えず、Humanクラスを継承したMyHumanクラスを自分で作り、10代かどうかを判定するメソッドを追加する。 public class MyHuman extends Human{ public boolean isTeen(){ return super.