2008-01-01から1年間の記事一覧

デリゲートとイベント

C#

★違い eventをつけて宣言すると、外部ではイベントの追加削除のみだけ アクセスできるようになる。 ★命名規則 種類 命名例 event ○○○EventHandler delegate ○○○CallBack public partial class Form1 : Form { public delegate void processEndCallBack(int s…

理論的に考える

例) 欠陥数を取得したい。 //欠陥情報 class DetectInfo { public int 欠陥No public int 欠陥名称 public Color 分類色 } class Working() { DetectInfo[] d_infos; public void Working() { d_infos = 欠陥情報取得(); //発生欠陥をカウントアップクラスの…

データの生成、受け渡しタイミング

必要な時に必要な物だけを生成・受け渡しする。 これは強くすること!!! -> 無駄なデータの保持やたらい回しが無くなる。

データの管理者とデータの表示者の関連

データに表示先の参照を持たせておく。

クラス作成その前に

「○○な処理をするのには、□□と△△が必要になる。 現状ではクラスAは●●を持っていて、クラスBは▲▲を持っている。」現状とやりたい処理・それに必要なデータから、どういった流れでコーディングを行うか決める。 そこでクラスが必要ならば作成すれば良いし、別…

ファイル・フォルダ操作

#ファイルが存在しなかったり、権限が無い場合は例外が発生する。 File#rename("変更前", "変更後") #ファイル名変更 #FileUtilsライブラリ #ファイルコピー、ファイル移動、ファイル削除はこのモジュールを読み込んで行う。 require "fileutils" FileUtils.…

IOクラス

#モード "r" 読み込み専用。デフォルト値 "r+" 読み込み/書き込み用 "w" 書き込み用。ファイルが存在しない場合は作成する。既存ファイルを指定した場合は上書きする。 "w+" 読み込み/書き込み用 "a" 追加書き込み。ファイルが存在しない場合は作成する。 "a…

独自ハッシュとデータ型判定サンプル

#独自ハッシュとデータ型判定サンプル class MyHash def initialize @inner_hash = Hash.new() end def []=(key,value) if key.is_a?(Integer) == true #データ型判定 @inner_hash[key] = value end end def [](key) return @inner_hash[key] end end obj = …

文字列操作

#ダブルコーテーションで括った文字列 ・特殊文字を表すことができる。 ・式展開を行うことができる。 str = '太郎' msg = "こんにちは、#{str}" #こんにちは、太郎 #文字列の長さを得る str = "こんにちは、Tarou" p str.size #17 p str.split(//s).size #1…

配列操作

配列だけでなく、HashやStringにも一部同様の操作がある。 Array#unshift(val): 先頭にvalを追加する。 Array#shift(): 先頭の値を取り出す。破壊的メソッド Array#first(): 先頭の値を参照する。 Array#push(val): 語尾にvalを追加する。 Array#pop(): 語尾…

モジュール

module HelloWorld Version = "1.0.0" #定数定義 def hello(name) return 'hello,' + name end module_function :hello #モジュール関数として外部に公開する end puts HelloWorld.hello('高砂')

ダック・タイピング

ダック・タイピング: 「アヒルのように歩きアヒルのように鳴くものはアヒルに違いない」という格言からきた言葉。 →インターフェースが同じなら、表すものが異なっていても同じものとして考える。

2008年度夏旅行まとめ

2008年度夏旅行まとめ 一日目:京都(清水寺、三十三間堂)、奈良(夜の灯籠) 二日目:奈良(若草山、奈良公演、ホテルで休憩、夜の灯籠) 三日目:奈良(鹿シャツ購入、奈良町)、京都駅(お土産)・宿泊に当たって自分の歯ブラシ、洗顔、ドライヤー、部屋…

Proxyパターン

Proxy パターン - Wikipedia インスタンスの遅延生成 必要になってから生成を始めたり、Proxyクラスの生成したら作り始めたり。 Proxyクラスと遅延生成クラスの操作は別に共通でなくてもいいと思う。 //何かのデバイス操作Interface public interface IDevic…

Flyweightパターン

Flyweight パターン - Wikipedia重いクラスインスタンスは共有しましょうという考え。 共有すると、一カ所の変更がすべてに影響を及ぼすので注意が必要。 public class FlyweightFactory { private Hashtable make_objs = new Hashtable(); public Flyweight…

例外処理

#例外サンプル # 実行時引数にとったファイル名から、行数・単語数・文字数 を出力するプログラム ltotal = 0 #行数 wtotal = 0 #単語数 ctotal = 0 #文字数 begin if ARGV.size > 3 raise 'ファイル数が多すぎます。' #例外の発生 end ARGV.each{|file| inp…

クラス定義

#class sample class MessageMaker #アクセサ定義 # attr_reader :変数名 読み取り用 # attr_writer :変数名 書き込み用 # attr_accessor :変数名 読み書き両方 attr_reader :name, :jikoku #コンストラクタ def initialize(name, jikoku) @name = name #イ…

メソッド

def getAisatuMessage(namae, now_hour) if now_hour <= 3 return "深夜です、", namae, "さん" elsif now_hour <= 6 return "早朝です、", namae, "さん" elsif now_hour <= 12 return "午前中です、", namae, "さん" elsif now_hour <= 18 return "午後で…

制御構文

#if sample if x < 10 && x > 5 puts "xは10より小さく、5より大きい" elsif x % 2 == 0 puts "xは偶数" else puts "xはその他の数" end #each sample #eachメソッドにブロック({〜}部分)を渡して、その中に繰り返したい内容を記述する。 names = ["太郎", "…

変数

・ローカル変数 先頭がアルファベットの小文字か「_」で始まる ・グローバル変数 先頭が$で始まる ・インスタンス変数 先頭が@で始まる ※メンバ変数のことね ・クラス変数 先頭が@@で始まる ※静的メンバ変数のことね ・配列 array = ["太郎", "花子", "次郎"…

メモ

給与システムがCOBOLのため、給与カット不可 | スラッシュドット・ジャパン デベロッパー 給与管理システムがCOBOLでできている為、給与カットの政策にこのままでは対応できませんよ。 また、改造に半年とかかかりますよ。って話。 皮肉なことにCOBOLの技術…

Mementoパターン

Memento パターン - Wikipedia 管理したい情報を表すクラス(Memento) Mementoクラスを作成するクラス(Originator) OriginatorからMementoを取得・保管するクラス(Caretaker) で構成される。MementoのAPIはOriginatorに対しては全て公開されているのに対して…

Observerパターン

Observer パターン - Wikipedia 通知者(被観察者)と通知先(観察者)で構成される。通知者が(自分の状態が変化した等)で通知先に連絡すると、通知先では通知者の情報を使用して処理を行う。 通知者、通知先はそれぞれインターフェースを実装している。 このイ…

Mediatorパターン

Mediator パターン - Wikipedia 相談役と複数の相談する側で構成される。相談側が相談事が発生したら相談役に連絡し、相談役は相談側に行動指示を行う関係。 相談側達は相談役とだけ会話を行い、相談側同士は関係が無い状態である。 GUIプログラミングのフォ…

Facadeパターン

Facade パターン - Wikipedia 直接外部とやりとりしない低レベルなクラス群と、それらを使用して処理を行う外部IFを持つ高レベルなクラスの関係。 高レベルクラスでの処理は、低レベルクラスを正しく使用して処理を行う為、低レベルクラスの取説的な役割を持…