[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤¹¤ë¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë»ý¤Äµ¡Ç½(Re:CAD¤Î¥¯¥é¥¹¹½Â¤)
Á°¶¶¤Ç¤¹¡£
Shin ¤µ¤ó:
>Shape¥µ¥Ö¥¯¥é¥¹¤¬ShapeRunTime¤òÃΤäƤ¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯(¥Ç¡¼¥¿¥Ù¡¼
>¥¹¤«¤é¼è¤ê½Ð¤·¤Æ¤«¤é³°¤«¤éÉÕ¤±¤ë¤È¤Î¤³¤È¤Ê¤Î¤Ç)¡¢³ÆÁÈ¿¥¤¬¤½¤³¤ÎÆÈ
>¼«¤Î¼ÂÁõ¤òÉÕ¤±¤ë¤ï¤±¤Ç¤¹¤Í.
¤½¤¦¤Ç¤¹¡£
>¤½¤Î¾ì¹ç¡¢
>In article <37cdd7be.3692.87cced020f2c6377@xxxxxxxxxx>
>Shin wrote:
>> :
>> otherYYYY(shape); // ÆÃ¼ì¤ÊÁàºî¤Î¾ì¹ç
>> :
>¤ÈÁ°¶¶¤µ¤ó°Æ¤ÏƱ¤¸¤³¤È¤«¤È»×¤¤¤Þ¤¹.
¤¨¤¨¤Ã¡¢¤Á¤È°ÛÏÀ¤¬(^^;
>¤Þ¤º¡¢LineRunTimeForDrawerÅù¤òShape¤Î¥µ¥Ö¥¯¥é¥¹¤¿¤Á¤Ë´ØÏ¢ÉÕ¤±¤ë½è
>Íý¤¬É¬Íפʤ櫓¤Ç¤¹¤¬¡¢¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï·ë¶É¡¢
>if (shape instanceof Line) {
> shape.runtime = new LineRunTimeForDrawer();
>} else if () {
>}
>¤ß¤¿¤¤¤Ê»ö¤¬É¬ÍפˤʤäƤ·¤Þ¤¤¤Þ¤¹.
¤¨¤¨¤È¡¢Line¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¤¯¤Ã¤Ä¤±¤ì¤Ð¤¤¤¤¤«¤È»×¤Ã¤Æ¤¿¤ó
¤Ç¤¹¤¬(Java¤Î¥Ç¥·¥ê¥¢¥é¥¤¥¶¤Ã¤Æ¥³¥ó¥¹¥È¥é¥¯¥¿¸Æ¤Ö¤ó¤À¤Ã¤±)¡¢
¤è¤¯¹Í¤¨¤¿¤é¡¢Line¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¡Ödraw()¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç
¥ó¡×¤Ë°Í¸¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤Ç¤¹¤Í¡£
¤Ç¤â¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò¹½ÃÛ¤¹¤ë¥¢¥×¥ê¤Ë¤è¤Ã¤Æ¡¢¤¯¤Ã¤Ä¤±¤ë¥ª¥Ö¥¸¥§
¥¯¥È¤òÊѤ¨¤ë¤³¤È¤°¤é¤¤¤Ï¡¢¼ê¤¬¤¢¤ë¤È»×¤¦¤ó¤Ç¤¹¤±¤ì¤É¤â¡£¤½¤ì
¤³¤½ShapeRunTime¤ÎÀ¸À®¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥°¥í¡¼¥Ð¥ëÊÑ¿ôÅϤ·¤Ë¤·
¤Æ¤Ç¤â¡£
>¤Ç¡¢Shape¤Ë¥á¥ó¥Ð¤ò»ý¤Ä·Á¤À¤È¤½¤Î¸åDrawer¤ò»È¤¦»þ¤Ë¡¢
>
>(LineRunTimeForDrawer)(shape.runtime).draw();
>
>¤Ê¤ó¤Æ¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤Ç¡¢¤½¤ì¤Ê¤é¡¢
¥À¥¦¥ó¥¥ã¥¹¥È¤Ï¡¢(RunTimeForDrawer)shape.runtime
¤Þ¤Ç¤Ç¤¤¤¤¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢Ç¡²¿?
¤³¤ì¤Ê¤é¡¢¾¯¤Ê¤¯¤È¤âLine¤«Rect¤«¤È¤¤¤¦ else if ¤Î»³¤Ï½ñ¤«¤Ê
¤¯¤Æ¤¹¤ß¤Þ¤¹¡£
>ÍøÍѼԤϡÖShapeRunTime¤È¤¤¤¦¥¯¥é¥¹¤ò¥µ¥Ö¥¯¥é¥¹²½¤·¤Æ¡¢ÆÈ¼«¤Î¼ÂÁõ
>¤ò½ñ¤¡¢Shape¤Ë¼Â¹Ô»þ¤Ë¼«Ê¬¤ÇÀßÄꤷ¤Æ¡¢narrowing cast¤·¤Æµ¡Ç½¤ò¸Æ
>¤Ó½Ð¤¹¡×¤È¤¤¤¦Ìó«¤ò¼é¤ì¤ë¤Î¤Ç¤·¤ç¤¦¤«?
¥µ¥Ö¥¯¥é¥¹¤òÄêµÁ¤·¤Æ¡¢Shape¤Ë¤¯¤Ã¤Ä¤±¤ë½ê¤Þ¤Ç¤Á¤ã¤ó¤È¤ä¤ì¤Ð¡¢
¥À¥¦¥ó¥¥ã¥¹¥È¤Ç¥Ø¥Þ¤¹¤ì¤ÐÎã³°¤Ç¥³¥±¤ë¤Î¤Ç¡¢¼é¤é¤¶¤ë¤òÆÀ¤Ê¤¤
¤È¤¤¤¦¤«(^^;
¤¢¡¢draw()¤ò¸Æ¤Ü¤¦¤È¤·¤¿»þÅÀ¤Ç¥³¥ó¥Ñ¥¤¥é¤ËÅܤé¤ì¤ë¤«¤é¡¢¼Â¹Ô
»þ¤Þ¤ÇÂÔ¤ÄɬÍפϤ¢¤ê¤Þ¤»¤ó¤Í¡£
>Ê̤δÑÅÀ¤«¤é¸«¤Æ¡¢ShapeRunTime¤Ë¤Ï¼Â¹Ô»þ¤Î¤ß»È¤¨¤ë´ðËܵ¡Ç½¤â»ý¤¿
>¤»¤ë¤³¤È¤¬¹Í¤¨¤é¤ì¤Þ¤¹¤è¤Í.
>¤½¤ì¤ÈÆ±ÄøÅÙ¤Ëdraw()¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ÎɬÍ×À¤¬¤¢¤ì¤Ð¡¢
>ShapeRunTime#draw()¤È¤¤¤¦(Ãê¾Ý)¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤â½ñ¤¤¤Æ¤ª¤±¤Ð¡¢
>narrowing cast̵¤·¤Ç¸Æ¤Ó½Ð¤»¤Þ¤¹.
¤³¤ì¤Ï¡¢¤½¤¦¤À¤È»×¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢³Æ¥¢¥×¥ê¤ÎÆÃ²½¤·¤¿¤â¤Î¤À¤±¡¢
ShapeRunTime¤Î¥µ¥Ö¥¯¥é¥¹¤Ë¼ÂÁõ¤¹¤ì¤Ð¤¤¤¤¤ï¤±¤Ç¤¹¡£
>>»È¤ï¤Ê¤¤¥á¥½¥Ã¥É¤¬ShapeFunction¤Ë¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¤¢¤Ã¤Á¤Î
>>¥¢¥×¥ê¤ò²þ¤¤¹¤ë¤È¡¢¤³¤Ã¤Á¤Î¥¢¥×¥ê¤Ë¤â±Æ¶Á¤¬½Ð¤ë¤È¤¤¤¦¤³¤È¤Ë
>>¤Ê¤ê¤Þ¤»¤ó¤«? javac¤Î¾ì¹ç¥ê¥³¥ó¥Ñ¥¤¥ë¤¬Íפ뤫¤É¤¦¤«¤Ï¤è¤¯ÃÎ
>>¤ê¤Þ¤»¤ó¤±¤É¡£
>¤¦¡¼¤ó¤È¤³¤Î¾ì¹ç¤ÎShapeFunction¼ÂÁõ¥¯¥é¥¹¤Ï¡¢Shape¥µ¥Ö¥¯¥é¥¹¤ÈƱ
>ÍͤËÊ£¿ô¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é»È¤ï¤ì¤ë¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê¤Î°ÌÃÖÉÕ¤±
>¤Ç¤¹¤Í.
λ²ò¤·¤Þ¤·¤¿¡£
> ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÆÈ¼«¤Î¼ÂÁõ¤Ï...¤ÎÉôʬ(¾å¤Ë°úÍѤ·¤Þ¤·¤¿)
>¤Ë¤â¤¢¤ë¤è¤¦¤ËShapeFunction¤È¤ÏÆÈΩ¤·¤Æºî¤é¤¶¤ë¤òÆÀ¤Ê¤¤¤È»×¤¤¤Þ¤¹.
ÀèÄø¤ÎotherYYYY()¤Ç¤¹¤Í¡£¤Ç¡¢Line¤äRect¤òinstanceof¤¹¤ëelse
if ¤Î»³¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤¤é¤á¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¤«¡£
¤½¤¦¤¹¤ë¤È¡¢Shape¤Ëruntime¤ò»ý¤ÄɬÍפâ¤Ê¤¯¤Ê¤ë¤Î¤Ç¤¹¤¬...
¤Ç¤â¡¢¤É¤Ã¤Á¤ß¤Á¡¢transient¤Ê¥á¥ó¥Ð¤Ï²¿¤ä¤«¤ä¤ÇÍפꤽ¤¦¤Êµ¤
¤¬¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢Windows¤Ê¤é¡¢CPen¤Ê¤ó¤Æ¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤Ã
¤Æ¡¢¤³¤¤¤Ä¤ÇÉÁ²è°À¤ò»ØÄꤹ¤ë¤ï¤±¤Ç¤¹¤¬¡¢¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï¡¢¼Â
¹Ô»þ¤Ë¤Ï³ÆShape¤ËCPen¤òÊÝ»ý¤µ¤»¤È¤¤¿¤¤¤È»×¤¦¤«¤âÃΤì¤Þ¤»¤ó¡£
>¤¢¤ëÍøÍѼԤ·¤«»È¤ï¤Ê¤¤¼ÂÁõ¤Ç¤¹¤È¡¢ShapeRunTime¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë
>ɬÍ×À¤â¤È¤¯¤Ë¤Ê¤¤µ¤¤¬¤¹¤ë¤È¤¤¤¦ÅÀ¤È¡¢
># Ê£¿ô°·¤¦¤«¤â¤·¤ì¤Ê¤¤Shape¤È°ìÂаì¤Ë¤¯¤Ã¤Ä¤±¤ÆÆ±»þ¤Ë°ú¤ÅϤ·¤¿¤ê
># ¤Ç¤¤ë¤³¤È¤Ë°ÕµÁ¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ê¤é¤ï¤«¤ê¤Þ¤¹.
Shape¤Ï¤¿¤¤¤Æ¤¤ÂçÎ̤ˤ¢¤ë¤Ç¤·¤ç¤¦¤·¡¢Shape¤Î¼Â¹Ô»þ°À¤Ï
Shape¤´¤È¤Ë»ý¤Ã¤Æ¤Ê¤¤¤È´ÉÍý¤¬ÂçÊѤǤ¹¤·...
Shape¤¬¶ñÂÎŪ¤ËLine¤«Rect¤«¤Ã¤Æ¤³¤È¤Ë¤è¤êưºî¤òÊѤ¨¤è¤¦¡¢¤Ê
¤ó¤Æ¤³¤È¤â¹Í¤¨¤ë¤È...
># ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤ÇƱ»þ¤Ë¤Ï°ì¤Ä¤º¤Ä¤·¤«ShapeRunTime¥µ¥Ö¥¯¥é¥¹
># ÁêÅö¤Îµ¡Ç½¤ò»È¤ï¤Ê¤¤¤Ê¤é¡¢Àè¤Ë½ñ¤¤¤¿¤è¤¦¤Êñ¤Ê¤ë¥á¥½¥Ã¥É¤ÇÎɤ¤
># ¤È»×¤¤¤Þ¤¹.
¤¨¤¨¤È¡¢ShapeRunTime(¤Î¥µ¥Ö¥¯¥é¥¹)¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢Shape¤Î
¥¤¥ó¥¹¥¿¥ó¥¹¤Î¿ô¤À¤±ºî¤ë¤Ä¤â¤ê¤Ç¤·¤¿¡£
>»ä¤Î°Æ¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Î¹Ô¤¦¼ÂÁõ¤Ç¤Ï¤Ê¤¯¡¢Shape¤Ë´ØÏ¢¤¹¤ë¥¯¥é
>¥¹¥é¥¤¥Ö¥é¥ê¤ÎÀ߷פ˴ؤ¹¤ëÏäÀ¤Ã¤¿¤È¤¤¤¦¤¢¤¿¤ê¤Ç¤¹¤Í.
¤½¤¦¤¤¤¦¤³¤È¤Ç¤·¤¿¤é¡¢Î»²ò¤Ç¤¹¡£
------------------------------------------------------------
Á°¶¶ ÏÂÌï maebashi@xxxxxxxxxx
ÃæÉô¥½¥Õ¥È¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°(³ô)
¢©450 ̾¸Å²°»ÔÃæÂ¼¶è̾±Ø4-10-25(̾±ØIMAI¥Ó¥ë 5F)
Tel:(052)583-4511(Âå) ÆâÀþ 252 Fax:(052)583-4566
------------------------------------------------------------