From: keiju@... (ÀÐÄÍ·½¼ù ) Date: 1997-04-05T09:44:52+09:00 Subject: [ruby-list:2628] Re: class design (Re: url escape) ã‘ã„ã˜ã‚…ï¼ SHLジャパンã§ã™. ã„ã‚„ã‚. ãªã‹ãªã‹æ¥½ã—ã„話題ã§ã™ã­ãˆ. In [ruby-list :02603 ] the message: "[ruby-list:2603] Re: class design (Re: url escape) ", on Apr/04 20:28(+0200) sinara@blade.nagaokaut.ac.jp writes: >基礎論ã£ã¦ã„ã†ã¨ã€ã“ã®å‰ã®ã‚«ãƒ¬ãƒ¼å®´ä¼šã§ä¸€ç·’ã ã£ãŸã€Œå‰è­°é•·ã€takun >ãŒåŸºç¤Žè«–ã ã£ãŸã‚‰ã—ã„ã‚“ã§ã™ã‚ˆã€‚é…”ã£æ‰•ã†ã¨ Grothendieck tops ãŒã© >ã†ã®ã“ã†ã®ã¨åˆ†ã‹ã‚“ãªã„ã“ã¨è¨€ã„出ã—ã¦å›°ã‚‹ã€‚^_^; ç§ã‚‚基礎論ãŒå°‚é–€ã§ã¯ãªã趣味ã§ã‚„ã£ã¦ã„ãŸã ã‘ã§ã™ã®ã§... ç§ã®å°‚é–€ã¯å¤šæ§˜ 体上ã®è§£æžå­¦ã§ã—ãŸ. >ãªã‚‹ã»ã©ã€‚スーパークラス一部ã®èƒ½åŠ›ã‚’ä½¿ã„ãŸã„ãŒãŸã‚ã«ã€å®‰æ˜“ã«ç¶™ >承ã—ã¦ã—ã¾ã†ã®ãŒæ°—æŒã¡æ‚ªã„ã®ã§ã™ã­ã€‚æ„味的ã«ãã¡ã‚“ã¨ç¶™æ‰¿ï¼ˆåŒ…å«ï¼‰ >関係ã«ãªã‘れã°ç¶™æ‰¿ã—ãªã„ã¨ã€‚ ã“れã£ã¦, SmalltalkãŒå˜ç´”継承ã—ã‹ãªã„ã‹ã‚‰ã“ã†ã„ã†å‚¾å‘ãŒå¼·ããªã‚‹ã‚“ã§ã™ よ. rubyã§ã¯ moduleãŒã‚ã‚‹ã‹ã‚‰ã‚‚ã£ã¨åˆ¥ãªè€ƒãˆæ–¹ã‚’æŒã£ã¦ã„ã¾ã™. >ãã†ãªã‚‹ã¨ã€ã»ã‚“ã¨ã«ç¥žæ§˜ã®æ§˜ã«ï¼‘ã‹ã‚‰ã‚¯ãƒ©ã‚¹ã‚’作ã£ã¦è¡Œãã‚ã‘ã§ã™ >ã­ã€‚ç§ã¯ä¸€å¿œæ•°å­¦å±‹ã®ç™–ã«éžä½“系嗜好ã¨ã„ã†ã‹ã€ã¡ã‚‡ã‚ã£ã¨ãƒãƒ§ãƒ­ãƒž >ã‚«ã‚·ã¦ã€ãã®å ´ãŒã—ã®ã’れã°ã„ã„ã‚„ã¿ãŸã„ãªã¨ã“ã‚ãŒã‚ã£ã¦ã€ã€ã€æ€§ >æ ¼ã§ã™ã‹ã­ã€‚^^; クラス継承を使ã†ã®ã§ãªãã¦, デレゲーションを利用ã™ã‚‹ã‚“ã§, ã‚ã¾ã‚Šæ‰‹é–“㯠変ã‚らãªã„ã‚“ã§ã™ã‘ã©ã­. 継承を使ã†ã¨ã„ã†ã“ã¨ã¯, 隠蔽ã•れãŸã‚¯ãƒ©ã‚¹ã‚’利用ã™ã‚‹ã‚ã‘ã§ãªã„ã®ã§, 利用 ã«é–¢ã—ã¦ãれãªã‚Šã®è²¬ä»»ãŒå‡ºã¦ãã¾ã™ã—ã­. >ãªã‚‹ã»ã©ãªã‚‹ã»ã©ã€‚ã“ã®ã‚ãŸã‚Šç§ã¯å®Œå…¨ã«ã€Œã‚ªãƒ–ジェクト指å‘ã€ã‚’ >誤解ã—ã¦ã„ã¾ã—ãŸã€‚ç§ã¯æœ€åˆã‚ªãƒ–ジェクト指å‘ã¨ã„ã†ã®ã¯ã€ruby ã® >module ã®æ§˜ãªã€æ•°å­¦ã§ã„ã†ã¨ã€Œåœè«–ã€çš„ãªæ©Ÿèƒ½ä¸­å¿ƒä¸»ç¾©ã¨ã„ã†ã‹ã€ >「é…管ã¯ã™ã‚‹ã‘ã©ãã®ä¸­ã«ä½•ãŒé€šã£ã¦è¡Œãã¯é–¢çŸ¥ã—ãªã„よã€çš„ãªã‚‚ >ã®ã‚’イメージã—ã¦ã„ã¾ã—ãŸã€‚ã‚€ã—ã‚対極ã®è€ƒãˆã§ã—ãŸã€‚ ãã†ãã†. ã“ã®è¾ºãŒrubyã®æ°—ã«å…¥ã£ã¦ã„ã‚‹ã¨ã“ã‚ã§ã‚‚ã‚ã‚‹ã®ã§ã™. moduleã¯ãª ã‹ãªã‹è‰¯ã„概念ã ã¨æ€ã£ã¦ã„ã¾ã™. 例ãˆã°å…ˆã® Array 㨠Vector ã®ã‚ˆã†ãªã‚‚ ã®ã§ã‚‚ moduleã¨ã—㦠Arrayable ã®ã‚ˆã†ãªã‚‚ã®ãŒã‚ã£ã¦, ãれを Vector㌠includeã™ã‚Œã°ãれã¯ãれã„ãªé–¢ä¿‚ã«ãªã£ã¦ã„ã‚‹ã¨æ€ã„ã¾ã™. >> 最近ã¯, ã‚½ã‚±ãƒƒãƒˆã®æ±Žç”¨ãƒ—ロトコル作æˆ/é€šä¿¡ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¯ãƒ¼ã‚¯ã«æŒ‘戦中ãªã®ã§ >> ã™ãŒ, ãã“ã§ã¯ mix-inモジュールã®åŠ¹æžœçš„åˆ©ç”¨æ³•ã«æŒ‘戦中ã§ã™. FWã®æ§˜ãªã‚ >> る程度制é™ã•れãŸç”¨é€”ã®ã‚¯ãƒ©ã‚¹ãƒ©ã‚¤ãƒ–ラリã«ãŠã‘ã‚‹mix-inモジュールも色々㪠>> 用途ãŒã‚ã‚‹ãªã‚ã¨å®Ÿæ„Ÿã—ã¤ã¤ã‚りã¾ã™. > >楽ã—ã¿ã«ã—ã¦ã„ã¾ã™ã€‚(^_^) ãªã‹ãªã‹ãƒ•レームワークã¯é›£ã—ã„(^^;;; 気分転æ›ã« Syncronizerクラスを作 りã¾ã—ãŸ. æ–°ã—ã„ ruby ã«ã¯æ·»ä»˜ã•れã¦ã„ã‚‹ã‚“ã˜ã‚ƒãªã„ã‹ã—ら? In [ruby-list :02606 ] the message: "[ruby-list:2606] Re: class design (Re: url escape) ", on Apr/04 20:56(+0200) matz@caelum.co.jp (Yukihiro Matsumoto) writes: >ãªã‚‹ã»ã©ã­ãˆï¼Žå®Ÿã¯ç§ã¯(rubyã®)継承ã¨ã„ã†ã®ã¯æ©Ÿèƒ½ã®å…±æœ‰ã®ãŸã‚ >ã ã‘ã«å­˜åœ¨ã—ã¦ã„ã‚‹ã¨è€ƒãˆã¦ã„ã¾ã™ï¼Žé™çš„ãªåž‹ã®ãªã„言語ã§ã¯ç¶™æ‰¿ >関係ãŒã‚ã‚‹ã‹ã‚‰ãƒ—ロトコルãŒä¸€è‡´ã™ã‚‹ã¨ã‹ã„ã†ã‚ˆã†ãªåž‹ã«é–¢ã™ã‚‹æ€§ >質(仕様ã®ç¶™æ‰¿)ã¯ã‚ã¾ã‚Šæ„味ãŒç„¡ã„ã§ã™ï¼ŽundefãŒã‚ã‚‹rubyã§ã¯ç‰¹ >ã«ãã†ã§ã™ã­ï¼Ž å˜ç´”ã«è¨€èªžè«–çš„ãªè¦‹åœ°ã‹ã‚‰è¦‹ã‚Œã°ãã†ã‹ã‚‚知れã¾ã›ã‚“. >ã¤ã¾ã‚Šï¼Œã¡ã‚‡ã£ã¨æ¥µè«–ã™ã‚‹ã¨ï¼Œãƒ¦ãƒ¼ã‚¶ã«ã¨ã£ã¦ã¯ç¶™æ‰¿ãªã‚“ã¦ãれ㻠>ã©æ„味ãŒç„¡ãã¦ï¼Œå®Ÿè£…者ã®åˆ©ä¾¿ã®ãŸã‚ã ã¨è€ƒãˆã¦ã„ã¾ã™ï¼Ž ># 本当ã¯ãƒ¦ãƒ¼ã‚¶ã‚‚継承ã‹ã‚‰é¡žæŽ¨ãŒããã¨ã„ã†å¤§ããªåˆ©ç›Šã‚’å—ã‘ã¦ã„ ># ã‚‹ã®ã§ã™ãŒï¼Ž ãã†ãã†. ç§ã¯ãã†ã„ã†å•題をé‡è¦–ã—ã¦ã„ã‚‹ã®ã§, 使ã„ã‚„ã™ã„ライブラリを作 ã‚‹ãŸã‚ã«, スーパクラスã®ç¶™æ‰¿ã«ãŠã„ã¦ã¯, 概念継承(ã¨æ§‹é€ ã®ç¶™æ‰¿)ã‚’é‡è¦–ã—, モジュールã®ç¶™æ‰¿ã¯æ©Ÿèƒ½ã®ç¶™æ‰¿ã‚’é‡è¦–ã—ã¦è€ƒãˆã‚‹ã‚ˆã†ã«ã—ã¦ã„ã¾ã™. ã¤ã„ã§ã«ã„ã†ãªã‚‰ã°, 個人的ã«ä½¿ã†ã‚¯ãƒ©ã‚¹ã‚„内部ã«éš ã‚ŒãŸã‚¯ãƒ©ã‚¹ã¯ã©ã®ã‚ˆã†ã« 作ã£ã¦ã‚‚良ã„ã¨æ€ã£ã¦ã„ã¾ã™. >|ãªã‚‹ã»ã©ãªã‚‹ã»ã©ã€‚ã“ã®ã‚ãŸã‚Šç§ã¯å®Œå…¨ã«ã€Œã‚ªãƒ–ジェクト指å‘ã€ã‚’ >|誤解ã—ã¦ã„ã¾ã—ãŸã€‚ç§ã¯æœ€åˆã‚ªãƒ–ジェクト指å‘ã¨ã„ã†ã®ã¯ã€ruby ã® >|module ã®æ§˜ãªã€æ•°å­¦ã§ã„ã†ã¨ã€Œåœè«–ã€çš„ãªæ©Ÿèƒ½ä¸­å¿ƒä¸»ç¾©ã¨ã„ã†ã‹ã€ >|「é…管ã¯ã™ã‚‹ã‘ã©ãã®ä¸­ã«ä½•ãŒé€šã£ã¦è¡Œãã¯é–¢çŸ¥ã—ãªã„よã€çš„ãªã‚‚ >|ã®ã‚’イメージã—ã¦ã„ã¾ã—ãŸã€‚ã‚€ã—ã‚対極ã®è€ƒãˆã§ã—ãŸã€‚ >ãªã‚“ã‹ä¸­å›½èªžã‚’読んã§ã„るよã†ã§ã™ç†è§£ã§ãã¦ã„ãªã„ã®ã§ã™ãŒï¼Œ >rubyã®ã‚ªãƒ–ジェクト指å‘ã£ã¦ã®ã¯ï¼Œçµæ§‹æœ€åˆã®åŽŸã•ã‚“ã®ç†è§£ã«è¿‘ã„ >ã‹ã‚‚. ç§ã‚‚è¿‘ã„ã¨ä¿¡ã˜ã¦ã„ã‚‹ã‚“ã§ã™ã‘ã©... ãŸã , モジュールã¨ã‚¯ãƒ©ã‚¹ã®ä½¿ã„ã‚ã‘æ–¹ ãŒã¯ã£ãりã—ã¦ã„ã‚‹ã¨ã„ã†ã“ã¨ã§ã¯ãªã„ã‹ã—ら?? __ .....................................石塚 圭樹@SHLジャパン(æ ª)... ------------->アドレス変ã‚りã¾ã—ãŸ!! e-mail: keiju@shljapan.co.jp <----