Óà Ruby ²È²ÈËÄÈ˰ï
ÉÏÉÏÖÜÔÚÊéµê¿´µ½Ò»±¾¡¶Ruby
Éè¼ÆÄ£Ê½¡·£¬¼ñÆðÀ´ 10 ·ÖÖÓ¿´Í꣬ÈÓÁË£¨±ðÎÊÎÒΪʲô……£©
ÏÂÃæÓÃ Ruby
ддÉè¼ÆÄ£Ê½£¬Ë³±ãÅúÒ»Åú Java ºÍ Gof
¡£
1.Factory
ºÍ Abstract Factory
class
Factory
attr_accessor :product
def
produce
@product
.new
end
end
class
Product
#..
end
fac = Factory.new
fac.product = Product
fac.produce
class Factory
attr_accessor :product
def produce
@product.new
end
end
class Product
#..
end
fac = Factory.new
fac.product = Product
fac.produce
JavaдµÄ¹¤³§ÓÐÕâô¼òµ¥£¬ÕâôÈÝÒ×ÖØÓÃô£¿
2.Builder
# ¹¤Í·
class
Director
def
build_with builder
acc = ''
[:header
, :body
, :footer
].each
do
|m|
acc += builder.__send__ m if
builder.respond_to? m
end
acc
end
end
# ¹¤ÈË
class
HTMLBuilder
def
header; '<html><title>html builder</title>'
;end
def
body; '<body>html builder</body>'
;end
def
footer; '</html>'
;end
end
Ïà¹ØÎĵµ£º
×î½üÒ»¶Îʱ¼ä£¬ÔÚæºõ£ò£õ£â£ùµÄ²âÊÔ¿ò¼Ü¡£
´Ó²»ÊìϤBDD,RSpecµ½Ä¿Ç°Äܹ»ÉÔ΢×öµã¶«Î÷£¬¸Ð¾õ·Ç³£²»´í¡£
RubyÊÇÃŷdz£Áé»îµÄ½Å±¾ÓïÑÔ£¬´Ó¶øÒ²×ÔÈ»ÏëÓÃËü×÷Ϊ²âÊԽű¾¡£ÈÃÎÒÃDZàдµÄ´úÂë½øÈë£Ô£Ä£ÄµÄģʽ¡£
µ±È»£Ô£Ä£Ä¾¹ýÕâЩÄêµÄ·¢Õ¹£¬ÏÖÔÚÒѾ½øÈëBDD(Behaviour-Driven Develop)µÄʱ´ú¡£
BDDºÍTDDÖ÷ÒªµÄ× ......
RubyËäÈ»ÊǶ¯Ì¬½Å±¾ÓïÑÔ£¬µ«ÊǺÍJavaÒ»Ñù£¬´øÓÐVM£¬ÓÐ×Ô¼ºµÄÄÚ´æ¶Ñ£¬´´½¨¶ÔÏóµÄʱºòÔÚ¶ÑÀïÃæ·ÖÅäÄڴ棬¶ÔÏóʹÓÃÍê±ÏÓÉGC½øÐлØÊÕ¡£µ«ÊÇͨ¹ýÎÒÃÇÔËÓªRailsÍøÕ¾Á½Äê¶àµÄʵ¼ùÀ´¿´£¬Ruby VMµÄGC»¹ÊÇ´æÔںܴóµÄÎÊÌâ¡£¼òµ¥µÄÀ´Ëµ£¬¾ÍÊÇGCÖ®ºó£¬¾¡¹Ü¶ÔÏóÒѾÍêÈ«»ØÊÕ£¬µ«ÊÇÎïÀíÄÚ´æÊͷŲ»¹»³ä·Ö£¬ÓÐй©µÄÏÖÏó¡£Í¨¹ýpmapÀ´dump rub ......
def delVss(path)
if File.directory?(path)
for f in d = Dir.open(path)
fpath = File.join(path, f)
if(f!="."&&f!="..")
......
1¡¢ÎļþµÄ´ò¿ªÓë¹Ø±Õ
``r'' Read-only, starts at beginning of file (default mode).
``r+'' Read-write, starts at beginning of file.
``w'' Write-only, truncates existing file to zero length or creates a new file for writing. ......