|
ÁÍ ˙ ˙Ý
˙ÁÍ ÍÍ ÔÁÍ Ĺ ÜßÁ Ĺ Allen Holub ŕ ß JavaWorld ÍÎßÍ Î :ÝÍ :ŕ áÍŐ ÍÍ ÔÁÍ ŕËË ÎÁ ÁÍ˙ ˙ÁÍÔ ŕÍŐ Í ÍÎ ŕ ŕ ŢÁ ÍË Ĺ Ăß ĹŔ Ú ŕ ÝË˙ Éß ŮË ÍßÔ ŕ ŕ ŢÁ ÍË .ÝÎÁËéÁ˙ ˙ÍÁÎÁ ÁÍ ŕ ŕÍ ŢÁÍË Ţ .Ë Í Í Ý Ü ÍË Ëéé ŕß ß ÍË Visual Cafe ŹVisual BJ++ ÍŐ RAD Í áËÍÍ ŕÍ Úé ŕééßé ÁÍ˙é ˙ß ŕéÍé ÚÍË .ÝÎÁËÍ˙ Ć ŕ Ë Ë ÁÍé˙é Ôé .ĹÁ Ë Í Í ÔÁÍ ˙ÍŕÁÍ ÚÍË ˙ÁÍé áÎééé ŕËéééééé Ăßééé Íéééééé éééééé éé ŕééé ŢéÁ ÍË ŢŔ ÎÁ Ńéé éÁ .ÝË˙ Éß ÁÍ OOUI (Object Oriented User Interface) ŕé Ëé ŹËÍÁË ÁÍ ˙ ˙Î áËÍÍ ˙ŕÍ Ţ ÁÍ ŕÁ Ë .Ëß ŕËÁË Éß ŕĎß ÍßÔ ŹVisual J++ ŹJbuilder) ˙ééé ˙ÍÁÎÁ ÎÁ Ú ÁÍ ŕ ŕÍ ŢÁ ÍË Ţ ŹËéé Ă ÁÍ˙ Ý Ú ˙ÁÍÔ ˙ÁÍ RAD (Visual Cafe ŹVisual Age .ËÁË ÝÁß Éß Éééßé ÁÍ ÁÍéÁ ŢÎ ÍË ĹŔ Ţ Ô ÍÁ ŕß ß ĹŔ ŕ ŢÁ ÍË ˙éÁÍéÔ ˙áËÎ ÁÍ˙ ˙Ý ŕ Ëß ËÁß ŕË Ţ .ÝË˙ Ţééßé ŕééÍé ÁĚ .Ĺ procedural ˙Ý ˙Ë ŕ ŕ ËÍÁË UI .Ëß˙ ŕÁß Ü ÁÍ˙ ˙Ý áÎ ŕË ˙ÁÍ procedural ÁÍ˙ ˙ÁÍÔ áË Ý !ĹÁ ŕ Á ËÁË˙ ŕŔ Ţé ŢßÍË ÍË ( ĹŔ) Ëß ĹÁß áÍ Ú Ë ÁÍ ÁÍ ˙ Ý ŢéÁ .Ëééé˙é Ĺ ÍË Ý ŢËÍ ÜË ß ËÍ ŕ Ë Íß Ëß ŕËÍ ËÁß ˙ ŹË ŕ ÁË ÚÍ Ĺß ŕ ÍßÍË Ź ĹŔ ĹÁß ÁÍ ˙é ˙Ý Đ Ú ˙ĹŔ Í Ë ËÁß ÍÁ) .Ëß áË éÁß ÍË .Đ ŕ ËÍÁË ĹŔ ˙ßÍ ŹÁÍÁ ŢÎ ÍË Á (ËÍ Í Á ÍË ÎÁ ˙Áŕéßééé .ĹéĹŔ ÎÁ ˙ ŹÝ˙ Đ Ţß ŕÍ ŕŔ ˙éÁÍéÔ é .ËéÍ˙ ÍÁÍ Đ Ú ÍË ŹËÍÁË ÚÍ Ĺß ŕ ˙ĹŔ .Đ Í ˙ ˙ÁÍÔ ŕ ÝË˙ ÝÁ ÁÍ˙ .Ë ˙ ĹÔÁ ŕ .ĹŕËÁË ËÍ ŹÁÍ˙ ˙ÁÍÔ Ń ŢÍ ˙Á żĹÁ áÎ ŕ Ë ĹŔ Ú Đ ÎÁ ˙Áŕß ŕÁÍ ŕ ˙ÁŕËÁË Í ĹŔ ŕ Ë ŕËÁß ˙ ÍË Ë ˙ééé .Ëé˙ áÍ Ë ÁÍ ˙ÁŕËÁË Í ŢŔ ŕ ĹÁ Ë Ý ŕ ËÍ ŹËéË ÝééÁ ËéÁß ˙ ŕ ŕŔ ĹŔ .ĹĹ ÎÁ ˙Áŕß ĹŔ Ź˙é Íéé ŕé .ĹÁ ÝÁ ŕß ÎÁ ˙ ŕËÁË ß ÝÁ ŕß .Ëß˙ ŘÍ ŢéÁ ŕé ˙ééËé é ß Ë ĹÍË ß ÜÍÁ ËÁß ˙ ŕ ˙Ý ĹŔ Í Ë .Ëß˙ ŘÍ ŹË˙ ŕÍÁËÁ ÇÍ ˙Ë ŕÍß ˙ÁÍ ÁÍ Ý ŕßéé ŕ ŢŔ ˙Ĺ ˙ .Ëß Ë ËË ÝÁ ËÁß ˙ ĹŔ ŕ ŕŔ ÁÍ Ëßé Ĺéß éŕ ÁÍ˙ Ţß ŕÍ ÍÁ .Ĺ ŢÁ áÎ ŕË .ËéééËé ĹŔ ˙ÁŕËÁË Î ŕÍÍË ˙ ŕŔ ÎÁ Ń .Ë˙ ˙ÁÍÔ ŘÍ .ÝÍÁË Î ŕËÁË ÎÁ ˙ ŕ ĹŔ ÍÁ áÎŕË ˙ÁÍ ŕ Á :ËÍ Í ŕ ÁÍ˙ Ý Ú Ţ ˙ÁÍ ÁÍ ÁÍÎ ŢÁß ŕé áÎé ŕËé ĹÎ ŕ ˙ÁÍ Ţß ŢÁ) .Ë ˙ß ŕËÁË ŕ -ą .(ŕËÁË Ô ŕ ËßÍ˙ Í ŕ ŕËÁË áÎ ˙ß ˙ÁÍ Ô Ŕ) ĹÁ ŕ Á Áß ĹÍË ß ÜÍÁ -˛ (ËßÍ˙ Í ĹÁßÍË ËË ÝÁ ÁÍ áÍ ËÁß˙ ŕ ˙ ÔÁ ˙ÁÍ ÁÍ ˙ Ŕ ŕ -ł Ţ ÁÍ ÁÍ áÍ ŕ ĹÁ ĹÔÁ ˙ß ŕ Ë ĹÁß ÍË ÁÍ ˙ Ŕ .Ë .ËË˙ ÝÁ .Ë Í Ë ĹŔ áÎ ŕË Í -´ .ËÍßŔ ÝÁÍ ÁÍ Ëß ŕ Í UI Ë ĹŔ ŕ -ľ Íéé ˙éÝé é .Ĺ ÁÍ˙ Ë ˙ Ĺ ÍßĚ ŢÁß ÎÁ ˙ ÍÁ ÍéÁ .ËÍÁË Ëßéß Îéé procedural Ăßé Í ˙Ý .Ë Ë ÁÍ˙ .ĹÁÍ˙ ŹË Ň ÁÍ ˙ÁÍ˙ ÜßÁ ˙ ˙ ŃÁË Ü ÍË ÚËŔ ŃÁË ÉéÁ ÁÍ Ëé ß ÝËÍé˙ Î Ă ŕ ŹÝÍ˙ Ĺ Ţ ŕ ÝÍÍË ŕ Ĺß Í ŕé ĹÎ Ë ß Ëß ŕ Á ÝËß ŕËÁË ÝÁ ŕ ŕŔ Í ˙ .Ý˙ .ĹÁ Í ß Í áÍ Ţ .Ý ÉÁ ÁÍ ŢŔ Ă é Ëéßé˙é ŕéÍé ĹéŔ Í ˙ ŢÁß ŕ ˙ ß !Ë ŕ Á éÁß ÍË ËÍÁË Ëßéß ĹŔ ŘÍ ˙ÁÍ áËË ˙ŕÁÍ ŕ ĹÁ ˙Ë ŕËßÍ .Ëééé˙éé ŕéß ŕě ŢÁ ŕ Ţ ÍË ß Ý ÍßÔ ŕ .Ë ÁÍ˙ ĹéÁ Ńéß Ô Ă ŕ ŕËß ŘÍ ˙Áŕß ŕ ÁÍ ÁÍ˙ ĹßÍ Ĺßééé ÎÁ Ú .Ĺ ÁÍ˙ ˙ ÍÁË Î ŕ Ú ÜÁßĎß ŕß ˙ÁÍ .Ë ÁÍ˙ ŢŔ ˙ËÁ ŘÍ ĹÍ ŢÁ .Ë Ţ Ë ĹŔ Ú ˙ßÍË Ĺß .Ë ŕ Ú Í Ůß ŢÁß Ëéé ŕ ) UI Ë Ü ĹŔ ˙ßÍË Ĺß ŕ ˙ Ë ÍÁ Áß ÍË ŕËÁË Ţé ŢŔ Ĺß ŕ ˙ Ŕ Ë (Ë ÁË ˙Í Ë Ĺß ĹÔÁ ŕ .Ëß ŕ Ëß˙ ÁÍ˙ ˙Ý Ü ÍË procedural ˙Ý ÁÍ ˙éß Ë ÍßĚ ŢÁß ŕ ĹÁ ŢÁ Ţ Ń ŢÁß Ţ ÜË ÎÁ ˙ ˙éĎéß Úé ŢËßÎéÁ Ü Í ˙ÁÍ ŕ ˙ ÁÍ ŕ ÁÍÎ .ËÎ˙ ŢŔ ˙Ë ÝË ÁÍ Ĺß ŕ Á .Ëß˙ ÎÍ Ţ Ú ÍË ŹËÍ ĹÍß Ë procedural ˙éÝé é ÎÁ Í ŕË ÁÍ˙ ˙Ý ß .ËÍ ŕ Á ÍË ˙éËéééé ééé é ŢÁ ÍË .ĹÁ Í Ŕ Ŕ áÍÁË Á .Ë áÍéÁ ÁÍ ˙Ë ŘĚ ÁÍ˙ ŢÁÍÔ .Ëß˙ ˙ËÎ áÍ ß ˙ŕÍ Ü ŕ Ë˙ ˙ËÎ ˙Áŕß ŕ ÁÍ Ý ˙Ë Ŕ .ËÁË˙ Ü ˙éÝé ééé ÎÁ Íé ŕËééé ÁÍ˙ ˙Ý ŕÁ ÝÍ .Ë ĹÍË ß Ëß˙ ˙ËÎ Í ŕÍ ŕßÁ ÍË Á ŹË procedural .ĹÁ Í Ŕ ŢŔ áÍÁË ÁĚ Ü Ú Ĺß ß ŕ ËÁß Ë .Ë˙ ĹÍË ÁÍ ŢÁÍÍ ˙Á ŕ ËÍ ÍŐ ÍË ÁÍ ˙ Éééé áËÍÍ ŕÍ Ú ÍË Á Ë ŕË Á (Text_Field) Ţ Ë ÎÁ ÍéÍé ÍéÁ żËË˙ ˙ßÍ ŕ Ëß ÁÍÁ Ţ ÍË Ý ÍÁ .Ĺ ĹÍË ÍÁ Ĺßé Ňéé Ý ÎÁ Ë ŕ ˙ ŕ Ëß Ý ŢËß ËÍÁß ˙ÁÍ ËÁß áÎé ŕÍééĚ ˙ÁÍé ŕé ÁÍ ˙ÁŕËÁË ŕ ÍÁ żËË˙ ˙ßÍ ŕ Ë ŕË Á ÍéÁ żËéË˙ ˙ßÍ ŕ Ë ŕÍĚ ÁÍ Unicode ËÁß ŹËÍ˙ Í ŕ ˙Á ˙éééé ŕÍéé Ë Ü ß ËËÍ ÁÍ ŕÍ Ë Ü ËÁß Ęéé Ţ procedural Ý ÍË żËË˙ ˙ßÍ ŕ Ë ŕÁ ÁÍ ŢÁËÍ ŕé ÔßéÍ Ĺ ŢÁ ŕ ËÍßŔ˙ ËË ÁÍ áÍÁË Ĺ Ůß ˙Í Ţéé Úß Ĺ Í ˙ÁÍ ˙ ŕË Ü ŕÁÍ .ĹÝ ŕßÁ Ĺ .ËÍ ĹÍß Ë áËÎ Ń Í ŢÍ ß ˙ÁÍ ß ËÍÁË Ëßß ˙ Ëéé Ü ˙Áŕß ŕ ËÍÁß ŢÁ ŢËß Íß Ë˙ ˙ ÁÍ˙ Í ŕÁÍ Ü ˙ÁÍ .ËÍÁĚ Í ŢŔ ˙ Í Í ŕÍ ÎÁ Ń Ú ÍË Í ŕ ËÁß ŕ ˙ĹŔ .ËÍÁË Î Name Đ Ú Ü ŢÁ ˙ÁÍ ÁÍ˙ Ü ŕÁÍ é Graphics ĹŔ ÁÍ Ý .Ë ˙Ë ÍÁË ß ŕËÁË Ń ÁÍ Ëß .ËË˙ Ń Container Á .Ëééé˙ ŕË Á Name ˙ ĹŔ Ú ÎÁ Ý ˙ÁÍ UI Ĺ ÍßŐ ŕ ŕé é .ËÍ Í ŕ ÍßŐ ŢÁ ˙ÁÍ ÁÍ Text Field ĹÁ Ţ Name ĹŔ .Ë˙ ŕß Ý ˙Ë ÍÁË ŕß ŕ ŹĐß ŕÍ ŢÁß controller Model-View :ą-ą ÁÍ˙ Í ŕß ŹJ Builder ÍééŐé ˙éé ) Ëß ŕ ˙ÍÔ Í ŕ UI ÍÁ Ůß Ü ÍË ÁÍ éŕËÁË Ëé Frame Đ .Ë˙ Í (Visual Cafe ŹJ++ ŹVisual Age éĹŔ ŕ ÁÍ Ŕ Đ ß Ë ÇÁÍ Á Java_Bean ŹÜÍ widget ÎÁ é MVC áÍééé ŢéÁ .Ëééé ÜéÍÁ ŹËéË˙ Ü ÁÍ ˙Ô ÜË ŕ Controller ŹView ŹFrame Ţé Widget .ËÍÁË Ý Model-View-Controller ŕË Ë Úß ˙Î áÎ ŕË ˙ÁÍ MVC .ĹÁ ÜË ˙ÍÎ Ý ß .ËßÍ Í ŕ áËÍÍ ŕÍ ÉÔ áÍ ŢÁß ŕ ËÁß ˙ Á ĹÁ Ă Ëé ŕ ÁË ˙Ŕ ÜË ÉÔ ˙ĹŔ áÎ ŕË ŕÍÍË Ë Ůß ŕß ÍË ÍË Ýé ééé ÍË áËéÎ ˙ŕËÁË ŕ Ĺ ÁÍ˙ ŕß ŢÁ Í ˙ Ý ŕéÍ ÍË MVC áÍ ÎÁ Ţß ŕÍ ÎÁ áÍ ŕ .Ë ŢÍ .Ë˙ ŕË Á Ëß áËÍÍ ŕÍ Í ŕß ą-˛ ÁÍ˙ Í ŕß MVC áÍééé ÎÁ ŕËé Á Ý ÍË ÁÍ áÍÁË Ĺ ÎÁ ˙ ËË ŕÎÁ ŕé ËéÍ ˙ ŕÍ ŢËßÎÁ Ůß ŕË Ü ÍË .Ý ˙ÍÍ Í Ë RAD ˛ ŕß áÍ ÍË .ËÍÁË Í ßÍ Í ÍË Ëßß ÝÁ Í ŕÍéé) ID ËéË Ë ŕ ÁÍ Widget ß ŕËß ÉÁ ˙ Ë ÁÍ ˙Á ÎÁ Ú Employee Đé é ËéÍßŔ ÝÁÍ ˙ Á Ë Ţ .ËÁÎ (˙ ËÍßé Ëé˙ ŕË Á Employee ÎÁ ŕ ÁÍ ˙Í ß Ë ÝŐ ÁÍ ID ËÁß ˙éÍÍé ˙ÁÍé Employee ĹŔ ßË ŕ ÍË ŕß ˙ÁÍ .ËË ÍÁÍ ŃÎŔ Íéééé ÁÍ ŕéÔßÍ ˙Ë ŕ Ë ÁĚ .Ë ŕË Á ID ÎÁ Ë ˙ß ËéËÍé˙é (encapsulate) Íßé Name Đ ÍË ÁÍ ˙ ŕÍ ÍÁ .ËË ÁÍ Ëßé ˙Ë ŕ Ë Áß ˙ Name ˙ĹŔ .ĹÁË ĹÍßÍ Ůß ÜÁ ÝÁ ID ĹééÔÁ Úé ÁÍ Ëß Name ĹŔ ßË ÚÁ .ËË Ţ ËË Ĺß ŢßËé Îé ËÍÁË Ý Fred equals Fred Compare Ë ß Ë˙ ŕ .Ë˙ ˙ Í WYSIWYG ÁÍéÎ ËÎ ÍËß ÁÍ Ë ˙Í ÎßÍ ŕ ËÁÍ ËÁß ˙ ˙ ŕËé Ëéß Ë Í ËÎ˙ ˙ ÁÍ Ë Ëß ËÁÍ áËÍ Ő ÎÁ ŕËé Ëéß Ë ÍËß ÍßÔ ŕ ÍÁ .Ë ŢÁ Ë Ă Í ŢË ß Ë Í Visual ÍÁÎéÁ áËéé áÍéÍ ŕ ÎÁ Í ŢÁ ËË Í ÁÍ Ţ ÁÍÎ ËÍÁË ÍÔ Ë Í Ë ŕË Á ÍÁÎÁ ŢÁ ÎÁ ÁËË ÍÁ ˙ .Ëß˙ Ëéé Í Ë Í ÍÁ ß ËÍÁË ŕß Ë Í ŕ RAD ˙ÍÁÎÁ ÍÁ ÎÁ ŕËé Ëééßé Ëé ŕßé .ËË ÝÁ ˙ß ŕ ÁÍ Ëß ŕŐß ËÁß ˙ .Ë ˙ ˙ßÍ ŢËÁß Ĺ ß ˙ŔÍ ˙ËÍ Ë ŢÁß ÜßËé Widget Úé .ĹéÁ date-bound grid control RAD áÍéé ˙Á Ĺ Íé ˙ÁŕËÁË ŕÍ ŕ .Ë˙ Íß ÁÍ ÍŐ ËÍß SQL Ë Ë é Ëßé ËÁß Íß .Ë ËÁß ˙ ˙ SQL ŕ żËË˙ ˙ßÍ ŕ Ë ÍÁÎéÁ Úéé é ÁÍ ŢŔ ß ŕËÍ ÁË ËÍÁË data-bound ÜÍ ŕ ÁÍ ŕ Í SQL ŕ ˙Áŕ UI ŕ ŢŔ ÍË ŕ three-tier Ý ÍË .ËË Í visual é Ăéé Íé Ţé ŕ Î SQL ŕ ÔßÍ ŕ ß Ë˙ Ĺ ŕËß Íß ÁÍ .Ëéé˙é Í Ë ÁÍ Ü Á .ËË˙ ÝÁ áÍ Ë˙ Ĺ ŕËÁË ŕ middle tier ÍÁ .ĹÁ ŕË Îß Ü Ë ÍË Ë ÉÁ Ë ŕ áË ÁÍÎ .ĹÁ ÍÁßË ŢŔ áÍÁË Ë ŕË ŕ Ţ áËß Ë ÎÁ áËéÎ ŢéÎ ß ĹéÁ ÍÁßË Í Ţ ˙ÁÍ ˙ Ë ÍßÔ ŕ ˙ Á Ţ ÝÁ .Ë˙ Ú ÉÁ ŢÎ ÍË ˙ß ŕÍ ŕ RAD ÍÁÎÁ .ËÍ˙ Úé Úéé ŕé Ŕ ÁÍ˙ ŢÎ Ú Ë˙ Ú ŕ Ý ŢÁ ˙éĹéé ÎÁ ËÁß ˙ Ă Í ŢË ß Ë ˙ß ŕÍ Ŕ procedure Áß ÎÁ ËÍÁË ˙ßÎ ŕ ÝË Ţ .ËÍ ŕÍ áÍÁË ÍË ÁÍ˙ Ý áËéÎ Ĺ C++ .ËË ÝÁ ÁÍ˙ ˙ÁÍÔ Ú ŕÁ Í Ë ŕË Á C++ ŢÁ ÎÁ ĹéÁ Íé éé Ëéß ËŕÍ ŢŔ ˙˙Áß ÎÁ ËÁß˙ ÍÁ ß ËÍÁË ÍÁ .ĹÁ ŢŔ C++ ŕ ÍË Ô ß Ĺ ŕË Î Áß .Ë ŕË Á .Ë ŕË Á C ÎÁ ĹÁ Í Ëß procedural ˙Ý ËÁß˙ ˙ÁÍé ŕËé ˙éÁÍéÔ ŢéÎ Úé ŹËË˙ ÝÁ ÁÍ˙ ˙ÁÍÔ ÍÁ ÍË ˙ß ÎÁ ÎÁ áÍé .Ë ŢŔ ÁÍ áÎ ŕË ËÁß ˙ (Áß Ë) ÁÍ˙ ˙ ÍË ŹËéËÍ˙ ˙ß ŕÍ C ÍË ŕ ŕß .Ë˙ ˙ C Ţß ŕÍ Ňéé ÁÍé˙é ŢÎ Ú Áß .Ĺ ˙ ÍÁ .Ë ˙ß ŕÍ Áß .ĹÁ Ăß ˙ÁÍ˙ Ý Ú ŕÎéÁ ŹĹÁ ˙Á ß Ŕ Î ŕ ŢËÍ ŕ ÍË ÁÍ˙ ŃßÍ ŕÁ ÜË Ţé Ü ŢÁ ˙ÁÍ .Ý ŕ Ý ŕ ÁÍ˙ ˙ÁÍÔ Ú ŕËË ÎÁ ËË ÁÍé˙é ß Client/Server áÍé ßË Í ÍË ATM ÁÍÎ .ÝËß Ă Á ÁÍ ATM ĹéŔ Ú ÁÍ ATM ß ÍßÍ ĹŔ Ú ÁÍ Ú áÎÍ Í ß .ĹÁ Đ Ü .ÝÍ˙ ÍŐ ÍË Client procedural ÍÁÍ ÁÍ client ß éŕËÁË ÎÁ ˙éÎ ÁÍ ÍßÍ ŕËÁË ŕ Ţß ŕÍ ÍÁ ATM ĹÔ ÍÁ Ü ˙ß ŕÍ Ţ Ë .ËÁË˙ ŕËÁË ŕË ĹÁßÍË :ËÍ Í ÍË ÍÎ ĹÍß ÁÍ Ëß˙ Č ˙ß PIN ß Ë˙ Ţ ËÍÁß ÁÍ Ëß ĹÍ ÍÍ -ą ÜßéÍé "ÁÍ ŕË Ţ ŕ ÁÍ ĹÍ ŢÁ ŕ ÔßÍ PIN" (query) ĹÁßÍË ATM -˛ é Ëéé˙é ˙é ß Ë Í˙ ŕËÁË ŕ ŕ ÁÍ query ß ŕËß áË ĹÍßé ŕé ÁÍ PIN ŹATM .Ëé ˙ ÍÍ ˙ ÁßÍË ÍÁË ˙ Î ÍÁË ËËé ĹÍßé ŕ ˙ Î ËË Á ŹË Í˙ ÍßÍ ŕ SQL_query ÎÁ ˙ -ŕ Í .ËËÍ Í ŢŔ ŕ Ëß˙ ŕÍĚ ˙ ąś É .Ë˙ ĹÁßÍË ÁÍ ĹÁËÍ ÍÍ -ł é ß Ë˙ áË ÜßÍ "ÁÍ ŕË Ţ ŕ ÁÍ Ă áËßß" ĹÁßÍË ŹATM -´ .Ë˙ ŕÍĚ ˙ ł˛ áÍÁ ËË ĹÍß ŕ ÁÍ ˙ Î ŢéÁ ˙ÁÍé ÁÍ áËßß" query Ţ ŹË ËÎ ˙ ÍË ŕ áËßß ÍÁ -ľ .Ë Í˙ ÍßÍ ŕ ÁÍ "ŢÍ ÎßÍ ŕ ÁÍ ÍÍ ÖßÍé ˙é ééÎé ËË ŕÎÁ żËÍÁË Ëßß ˙ Á ŕ Ü ŢÁ ÍË ß ŕËßéé Éé Á Ă Ú ß Ë Ú ŕ ËÁß Î Ü ÍÁ .Ý ÝÁß˙ ŕ Á żËË ˙ ˙ßÍ ŕ Ë ÎÍÁß Ă ŢÁ ÍË ÁÍ Ëß Üß ŕ ËËé ŕé ˙éé ÍË .ĹÁ ¸ˇ/š´ Î Ü Üß ŃÎÍÁ .Ý ŢßÍ ÁÍ ßÁ ˙ÁÍ ŕ ˙ ąś É ËË ÍßÔ .ËÍÁË ˛° Ô ˙ ł˛ áÍÁ Çéé ÎÁ ËéÁß Ü ÍÁ .Ë˙ ŕÍĚ ÁÍ ÜË ÝÍ ´ ËßÍ˙ Í ŕ PIN ATM Ôéßé SQL ˙équery żËË˙ ˙ßÍ ŕ ŹË ŕË Á PIN ˙ÁÍ GATES ÝÍ Íé équery ŢéÁ ŹË Í ˙ÁŕËÁË ŕÍ ÍÁ .Ëß˙ áË ÜßÍ .ËÍ ËÁß Ë Í ATM Í ÍË ROM ŕ ĹÁ ŢÁ Ůß Ĺ ˙ÁÍ procedural ÍÁÍ PIN .Ëß ŕË Á ˙ ł˛ áÍÁ ËË ˙ ŕ Ř ĹË ˙ ś´ ÎÁ ß .ËÍßŔ˙ ËË ÁÍ áÍÁË Ü Î Ĺ ŢÁ ŕ Á .Ë Í Ĺ ł˛ ŕ ŕéËß ÍË Ý ËÍÁß ÎÁ ˙ ÍÁÎÁÝÍ Ă ŕÎ .ÝËÍÎ ˙Áß ˙Ë ŕ éŢßéé ŕ Ëß˙ Ă Ă ŕÎ ŘĚ Áß Á .ĹÁ IT Ń ÎÁ ŕ ˙Ŕ ˙ procedural ˙ŕÍ áÍÁË ÍË .Ë ˙ß ŕÍ ÍË Íéééé .Ëé ËÁß ŕÁß ˙ Î Ë˙ ŕË Á ŕËÁË ŕ Í ß (ŕËÁË ŕÍ) áÍÁÍ ˙Í áÎÍ ˙ŕËÁË ÖÁßÁ ŘÍ ŢÁ ĹÁ ÍÁßËÁ ÁÍ˙ ˙ÁÍÔ .Ëß ˙ß Î Ë ŕÍ ÍË Ţ ßÍ Ă .Ë Í ÁÍ Ĺ ÁÍ˙ ÍÁÍ ÍÁÍé ŕééÔ ËÍß ÁÍ˙ ŃßÍ ÁÍ Ůß Ü ÁÍ˙ Í ŕÁÍ ˙ÍÍ ˙ÁÍ ÁÍÁË ÁÍ ˙é ˙Ĺ ŕ ĹŔ ÎÁ ˙Áŕß ĹÍß ÁÍ Ý ß ÝË˙ ĹÁ ŕě áË ÜßÍ ÁÍ˙ ˙ÁÍÔ Í ÍË Ý ŢßÁ .ÝÍ˙ ÍŐ ÍË Ë ŕééěéé ŕéÁË ŕ Ý Ü ÁÍ ŢŔ ÝÍÁË ˙ ŕ ĹÁ ˙Áŕě Í ŕ :ĹÁ áÍÁË ŕě ŕÁË Ůß Ü ÍË .Ëß˙ ŕË ËŔ ˙ Ú ŕ áÍ ŹËé Ü ÁÍ Ůß ŕě ËÁß ˙ ÁÍ˙ ŕËË ŕß ŕ ÝÍË ŕÁ ˙ÁÍ ˙Áŕéßé ˙ß ˙ ĹÍß ß ÁÍ˙ ŕËË ÎÁ Í ŢÁ ˙ß ŕÍßË ÁÍŔ ŹËéÍÁË ˙éßé ˙ěÁß Ú Í ß Ë˙ áÍ ÍË ŕ Á ÎÁ ĹéÁ ŕě ĹÍß áË ÜßÍ ŹÁÍ˙ ˙ÁÍÔ Í ÍË Ý Ţ .Ý˙ ˙ÍÍ Ü ÍË .ËËÍ ÝÁÍ ŢŔ Ü Ü ŢÁ ß ŕË Ň ÁÍ ŢŔ ŕÁË ŕ ˙ß ŕ Ëé˙ ÉÍÔ ÁÍ Ü Ú Źŕě ĹÍß .ĹÁ ˙ Ĺ ŕě ŕÁË Ź˙ :Ý˙ ˙ßÎ ÍÎ ĹÍß ŕ ÁÍ ˙ ŕě .ÁÍ áÍ ß ŕÍ Ú ŕ ÁÍ ÝÍ ß Źŕ Í ŕß ËÁËÍ Á ÝÍ ÍÁËßË ÎÁ ŹËß˙ ˙ ËÍÁß áÍ Ú ĹËßé ÍÁËéßËéé ŕé ÁÍ ÝÍ ß ÝÁ ÁÍ Ëß Ĺß áÍ Đ .Ë˙ Ü .Ëéé˙é Ëě ÁÍ áÍ Ĺß ŹÚ ŮÁß ŕ ŕÁÍ ÍÁËßË .ËË˙ .Ë˙ ĹÁËÍ ˙ß ŕ ÁÍ áÍ ŕß ŹÎß Ă ÎÁ Đ ÍÁËßË Đ ˙éééé ÁÍ éŔ Ĺ ß ˙Á ˙ ÝÁß ˙ ŕË ŕě ŢÁ .ËÍ ÝÁß ŕË Á CRC-Card ĹÍ ÎÁ Ĺ ŢÁ ÍË Ţ .Ý
.Ëéé˙é ĹéÔ ÍÁ ˙ÍÍ ˙ß ˙Á Ń ŕ ĹÁ Ú ĐÍ ÍßÍ ÜË ŢÁÍË ˙é éÁßéÍË Áß ˙ÁÍ ÁÍ ˙ ŕËÍ ŹĹÁ Server-side ĹŔ Ú ŕ Ú ŢŔ ß ŕé éÍ Ú ÎÁ ÁÍ ŕËÍ ŕ ĹÁ Client-side tellerŹ ĹŔ .ËÎ˙ ÜËé ÍË ÁÍ ŢŔ ÁĚé .Ëß˙ Ăß ˙Í ŹÝ ˙ÁÍ áÍ .ËË˙ Íß ÁÍ ŹĹééé Úé Ĺ áÍ Á ËÍÁË áÍ Ý ÍßÔ ŕ) .ÝÍßŔ˙ .(Ë˙ Ĺ áÍ Ă ŕ .Ë˙ áÎ ÜË ÁÍ ˙ ŕě Ô ÁÍ˙ ATM Ý é ËéË˙é Ýé ŕ ÁÍ PIN ß ĹÍ ß ŕËß ŕÁÍ ATM Ý ŕ Ü -ą .Ë ĹÁËÍ ÁÍ ˙ ŢéÁ Ŕ ËÍ˙ server-side Ĺ Bank-records ĹŔ ÎÁ teller ĹŔ -˛ żĹÁ Î ŕÔßÍ ĹÍ ß PIN ËÍ .ËË˙ Í ŕ Ę Bank-records ĹŔ -ł ŢéÁ) .Ëéé˙é ĹéÁßÍË ÁÍ withdrawal-slip ŹBank-records ÎÁ teller -´ Ë˙ áÎ ŕË ÁÍ withdrawal-slip ÔÁÍ ŕ ĹÁ ˙ ÎÁ ˙Áŕß ĹŔ teller .ĹéÁ Ýé ŕ ŢÁ .ËßÍ˙ teller ŕ Bank-records ÎÁ ÍÁË ß ŕé ˙éÝ ŃÎÁËÍ ŕß ß ËÍÁË ÖÔÁ Ë˙ áÎ ŕË ŕ ˙ÔÁÍ ÎÁ Ô ŢééÁ ŕ ÁÍÎ ĹÁ Ăß ËÍ ŢÁ .Ë˙ Ţ ÁÍ Ëß˙ ÜÍÁ ŢŔ ŕ Í teller ŘÍ Í ŢßË ÁÍ Withdrawal-slip ĹŔ ËÍ ËË˙ .ÝË Ń ÁÍ ÍÍ ÔÁÍ ŕ Ëß˙ Withdrawal-slip ĹŔ ŕ teller ĹŔ -ľ .(ËË˙ ÝÁ ÁÍ Í ŢÁ ATM Í ˙ßÍ Í UI ÜÍÁ ĹŔ) ËË .ËÍ˙ ÍÁÍ Ă ÎÁ ĹÁËÍ Ń ÍË Ü -ś é é Á) ŕË Ü ˙Ë ÍÁË Ĺ ŕ Ëß˙ ŕß teller ĹŔ -ˇ Í bank_officer ĹŔ ŕ ÁÍ Withdrawal-slip ŕË Ü ĹŔ ß (OK Ë éé ŢÁ Ý Î Ţ Ŕ Ý ŕ ŢßÍŔ ŢÁß ŕ) Ë Í˙ ÍßÍ ˙ßÍ (żÝ ĹÁËÍ ÁÍ .ËË˙ Ę Í ŕ bank-officer ĹŔ -¸ .Ë˙ ĹÁËÍ ÁÍ ATM ŹË ŕ Ę ÍÁ -š .Ĺ Í ŕÁÍ ŢÁ ŕ Á Ě Á PIN áËßß ŕÍĚ ŕß ŕ ÔßÍ ĹÔÁ ŕ ŕ Ë ŕß Ë ˙ééé ĹŔ Ë ŢßÍË ... ß ĹÁËÍ ÝË ĹÁËÍ ˙ÁÍ ÍßÍ Ý .ËÍÁË Îßé ÍßË Ĺ ŕ ĹÁ ˙ Ŕ ÍßÍ ÁÍÎ ĹÁ Í Ĺ ŢÁ .ĹÁ ŢéÁ Bank officer ĹééŔ .ÝË ÍÁÍ ŕß ËÍß Î ÁÍ ĹÔ ÍÁ Ë Ýééé ÍË ÁĚé .Ëßé˙é Ü ATM ŕ ˙ÁŕËÁË Č .ËË˙ ÝÁ ÁÍ Í ŢËé Ň ŕß ÎÁ teller ĹŔ .Ĺ ATM Í ŕ Î ÍßÍ Ë ĹÁÍ .Ëßé˙é Íß Withdrawal-slip ĹŔ ÍË ĹÁËÍ ĹÁßÍË .ËÍÁË ÖÔÁ Üß .ĹÁ ÍŔ ÍßÍ ˙ßÍ Í teller Í ŕ ÍË é ßÍßé ŕé ŢŔ Í ŹË ŕË ŕ ß ŮÍÔ ŢË ßÍÁ ˙ATM Ô ÍÁ .ËÍ˙ ĹÍß ˙Ë ŕ server side ÍË Withdrawal-slip Đ ŘÍ Í ˙ ÁÍß ˙ Í ˙éÝ Ţ áÍ Ĺß .ĹÁ ˙ ÁÍß Ý áÎ ĹŔ ÍË Ý ŕě ÍéÎ ŕé ËéÁßé é procedural Ý ÍÁ .ËÍÁË Ëßß ˙ ÁÍß ß procedural ŹËéÎé˙é ÍÁÍéÍé Ô ÍÁ ÍË Ăß ÔÁÍ Ú ŮÍÔ ÎÁ ŕ ˙Ý ÍßéÔ ŕé ŢÁß ˙ ÁÍ Ý ÍÎ ŢÁ ÎÁ Ú Í .ĹÁ Ăß Í ŹËß Íß ˙éßé ŕé ˙é éÁÍß ˙ ÍÁ .Ëß áÎ ŕË ÁÍ˙ ĹÍß ŕ Ü ˙éÁÍéÔ ÁË Á ÎÁ ÁÍ ËË Ý ĹÁ Í ŢÁ Ëßß .Ëß˙ ˙ËÎ .ËÍé ÉéÁ ËéËé Ýé Ă ŢÁ Ë ÁÍ Ëßß Ë Đ ß Ëß .ĹéÁ Ü ÁÍ˙ Ü ˙ÁÍÔ ŢßË ÁÍ˙ Ý ŕ procedural Ý ÜË ŘéÍéé ÜéËéé ÍË ˙Í ÝË ÜË ŢÁ Ý ÍË ÇÁÍ Ĺ ÎÁ ˙ ˙ß ŕÍ ŢÁ .ĹÁ Ë Í ˙ÁÍ ËÍ ÝŐ ß Đ ŕ Ëßß struct ŕé éÁË ÍÔ ŕ .ĹÁ Ë ŕ ˙ Ë ˙ÁÍ ŕË ˙ßÍ ŕ .Ĺ ÁÍ˙ ÎÁ ˙Áŕéßééé struct .ËÍÁË Ĺßéé Ý Đ ß struct ˙ÁÍÔ ŕ Ë .ĹĹ ÎÁ ˙Áŕß Đ ß ŕËÁË ˙ ÁÍß Ý Í ÍË Ĺß ÝË ÍË Ţß ŕÍ ŕ ˙Á ŕ :ËÍÁË Ëßß ŕÍ ŢÁ ÍË ˙ß Ü ÁÍ Ëßéßé ËÍ ËÍßÍ Ŕ .Ë Í ÁÍ˙ ŕ ÁÍ ŢŔ ËËß Ń é ÁÍ Íé ŢÁ ß Ë ÜË Employee Đ ŕ ÁÍ ŢŔ ËËß ˙ ß ŕ Í Ëéé Í ˙ÁÍ get() ß set() ˙Ë ÎÁ ŕË Áß private ˙Ë ËÁ ŕé ß ĹÁË Salary Ĺ Employee Đ ŕ Ëß ŢÁ ŕě .ËËÁË ÝÁ Ĺéé .Ĺé ÍÁÍ Ë Ĺ .ĹÁË Salary Ë Î ˙ßÁ ËÍ ËÍßÍ Salary ŢßËé .Ëé˙ ÁË Ëß ÎÁ ÁÍ ËÍ Salary .ĹÁ ĹŔ ˙Ďß Ţ ŕé Đé ÍË éßÎ Ĺ ŕß .ËÍÁË ÍË ˙ ß Č ËÍ ß ËÍ .Ëßé ŕÍééĚ ˙éÍé ˙ŕËÁË ŕ ÍË Ë Salary .Ëß˙ Ĺ Ë ÍéÁ .Ëéé˙é ŕÍééĚ ÁÍ Ĺéé ˙Î ˙ÁÍ áÍßÍ ĹÔÁ Ô Employee ĹéË ĹÍßéé ÁÍ ŢŔ ĹÁ Ţ ŹË ŕÍĚ ˙ÁË ĹÍß ÁÍ Salary ŹEmployee ĹÍß ŢŔ ÍË .ËÍÁË ŕ Í ˙ËË Ë - ˙ßËßË ŕÁÍÁ áÍÁ Ř ÁÎéÁ ÉéÁ Ëé ÁÍ˙ ˙ÁÍÔ ÍË .ËÁËÍ˙ Î ÁÍ áÎ ŕ get_Salary() .Ëéé ÍéĚé ŢÁ ËÍÁĚ Í Đ ŢÁÍÍ Í ŕŔ ŢßË Đ private ˙éé ĹÍßé Ţé ŕ ŕ ËÍÁË Ëßß ˙ Á Ë áÍÁ Ë Salary Íé é ÍÁ Á ËÁËÍ Î ÁÍ áÍÁ ËË Ë get_Salary() Ë .Ë Íé Íé é ˙ Î ÍÁË ŢËÁË Í żËË˙ ˙ßÍ ŕ ŹË Í ˙ÁË .ËÍÁĚ˙ ÍÁ Ë ÁË ÁÍ ŢŔ ŕ ˙ ßÍ Ă ŕ .ËË˙ Employee ĹŔ ŕ ÁÍ ˙Ĺ ÁÍ˙ Ţß ŕÍ áÍ Ĺ Ú ËÁß˙ ĹŔ ÎÁ ŕ ËÍÁË ˙Í Ë Ĺ ŕ ŕË Ţ ŕ ÁÍ Ůß ÝÍ ŕ ˙ Employee ĹŔ ÍË .ËË ÝÁ Ţ ÁÍ ÁÍ ĹéŔ ÎÁ ŢŔ ˙ßÍ Í áÍ ÝÁ ÍßŐ ŕ ÁÍ Ĺ Ë .ĹÁË ËÁß ˙ÁÍ .Ë ÇÁÍ Á ĹŔ ÎÁ ÁÍ Ĺ ŕ ĹÁ ÝÎ ĹßÁ ˙ .Ë ÇÁÍ Á Îéé Úé ÍßËé ˙ÁÍé ÁÍ salary Źpayroll-department Đ ŮÍÔ ÎÁ ŕß ŢéÁ ÍééÁÍ ŢÍ .ËÍÁË Ëßß Ü ŢÁ ˙ÁÍ áËË ˙Í ŕÁÍ .ËÍÁË .Ëéé ĹéÁßéÍË ÁÍ salary ŹEmployee ÎÁ Payroll-department Đé ŕ ĹÁ Ëéé salary ĹéŔ ß .Ëß Íß Salary Money ĹŔ ÍË Ë Salary Ńéé Ă Í ŢË .Ë áÎ ŕË ÁÍ Ú ŕ ˙ÁÍ ÝÎ ˙Ĺ ŕ .ĹÁ Ĺ salary ˙ Î ĹŔ ŕ Á .Ë˙ ˙ ˙ Îß salary .ËË Í ÁÍ salary ŹPayroll-department ŕ ËÁß˙ ˙éÎéé ˙ÁÍ ˙ ËßÍ˙ Í ŕ Ý ÎÁ ÉßÔ Í ÍË áÎ Íß Öß ŢÁ ˙ééÁË áÎé ŕÍééĚ ŕé ÔßéÍ ĹÔÁ String Đ .ŕ Í Ë ˙Á ŕ Á String ÍË getBytes() Ë Íß Áß ÍË .ËË˙ Ţ ÁÍ Í ÁÍ Đé ÎÁ ˙ééËé é ĹÍß ËÍÁË Î ŕ Í ˙ÁÍ ŕ ˙ ŕ .ĹÁ ÍË ËééÁßé ˙ Í ÁÍ .Ë ÁË ŹËÎ˙ ŕÍĚ ÁÍ Í ÁÍ string Ëé ˙ ÎÁ ŕË Á ß ˙ßÍË ÁÍ Ëß string Á Ëß ŕÍĚ char ŕÁÍŔ .ËË˙ Ţ ... ß Íß ÎÁ ˙ Í ˙ Ë áÍÁĚ ŕé ËÍÁËé Ëßéß Ýé ééé ÍË ˙ ŕ ĹÁ ŢÁ Í Í ŢÁ ŕ Á .ËÍ ÁÍ char[] ˙ byte[] ˙ßÍŔ ˙éÝé éé ÎÁ áÍË ŕ ŢÁ ß Ë String ˙ĹŔ Ë ŕ Í ŕ String ĹéééŔ Ë áÎ Í .Ë Î Č Î ŕ Ŕ :ĹÁ ÁÍ˙ Ţ ŕ ß ËÍ Ôß char ˙ŕÁÍŔ ÁÍ String ˙ĹŔ ŢÁß ˙ ß Ë .ĹÁ ÍÁßË ÁÍ˙ ˙Ý ŕ ˙ ÁÍß ˙Ý Í ŕ ĹÁ ÜË ÁÍ ÍéÎ Ý ËÁß ˙ .ËÍÁË Ëßß ŃßÍ ßË GUI ÍË ŕ Í ˙Ë ÍÁË ˙ÁÍ ˙éË ÍÁËéé ŕÍééé ŢÁ ÎÁ ŕË Á ß ÍßÔ ŕ ÁÍ Ëß" :ËË Íß ŕËß ËÁ ÁÍ ÍßŐ ŢŔ ˙ÁÍ Î ËÍß J_Text_Field ŹString Đ ."Ë ˙éĹééŔ ÎÁ ˙ :Ëß ËÁß ˙ ŕÁ .ËÎ˙ ŕÍ ÍË ÁÍ ŢŔ ß Íéé Ţé .ŢÁËÍéÎ Ţ ŕ ËßÍ˙ Í ŕ ˙Ë ÍÁË ˙ÁÍ ŕ ÁÍ component ˙Ë ÎÁ ˙ ˙ÁÍ Visual Proxy Ú ŢÁß ŕ component ĹŔ ŕ Ý˙ ŕÎÁËéÁ ŹÝ ŕ Í ˙ßÍ Í ÁÍ ŢŔ ÝÁß ˙ Ţ .ĹÁ string ˙ ÍÍ ŕ ÁÍ ˙Í ÁÍ .ÝÎ Ü Í Ü ÁÍ ŢŔ ß ÝË Í ÁÍ ŢŔ proxy ŕé ˙Frame .ËßÍ˙é String ĹŔ ŕ " ŹË˙ Ä proxy ÍË .ËÍÁË ˙ÔÁ ĹÁ ŕËÁË ˙ßÍ ŕ ˙Ĺ ÎÁ ËÍÁË˙ ŕ ÁÍ ![]() ŹËÍÁĚé Íé áÍË Ë Í ŕŔ ŢßË ÁÍ ĹŔ Í ËÁß ˙ ÚÁ Úé ÍË Üé ĹÁÍ .ĹÁÍ˙ ŕß ˙áËÁß ÎÁ ˙ ŢÁ ß ËË Í Ëé Ţé éßé ß ˙Ô ß áÍÁË Ă Í ŢË ß ĹÁ ˙ Ü ÍßÔ ŕ Ü .ĹÁ Í Ŕ ˙Ë ˙˙ ĹŔ ÍË ˙ÁÍ ËÍ ˙éŕééÍé .ĹéÁ UI ŕééßé Ëß˙ ÁÍ˙ ŕß ŕ ŕ ÁË Á ÎÁ ˙ ˙éŃéé ÎÁ ÁÍ ˙éé ÍÎ ˙ÁÍ Ý ŕ ËÍÁË ˙ ˙ procedural ŕ ŕ Áß Ë ŢËß ÎÍ ÁÍ Í ŢÁ ß ËÎ ÁË (ÜË) ŕÍ ˙Ô ÍéÎ Úéé é ŢÁßé ŕ ĹÁ ŢÁ ŘË .ËË ÝÁ Ý ÍÎ Ú ŕ Ý Ĺéé procedural ˙Ë ÍË ŃßÍ ŢÁ .ËÁË Í ÁÍ ˙ÁÍ Ô Ý ÎÁ ß ĹéÁ ÎÍ DLL ˙ÁÍ Á ŕ Ú ÍË GUI ˙ Í ŕ .Ë ßÍßÍ .Đ Í ß Ë˙ Í UI ŹË Í ÜË ŕ Í .Ĺ ÁË Ý ŕ ŕßéé ŢŔ ŹÝéË ˙ ÝÁ ˙ ŕß ŕ ÁÍ Í ŕ ÜË ŢÁ ŕ ˙ééé ÍÎ Ý ÎÁ Ý ŢŔ ÍÁËÍÔ Ţ ŕ ˙Á áÍ .Ĺ ŕß ŢÍ AWT ÍË ŕééé Ëéé˙ ˙ß ŕÍ Ü Ý ÍË .ĹÁË ß Ëéééß˙ ŕÍ Ź˙ÁÎ Á ŕ ÍË ˙ (Abstract Windowing Toolkit) ŕ .ËË Í ÁÍ ˙ÁÍ Ô ÍÁ .Ë˙ ÁË ˙ÁÍ Ô ÎÁ ÁÍ Ëß .ĹÍ ËÁß ĹÍß AWT ˙ ÍË ĹÁÍ ĹŔ Ú ÎÁ Ř ˙ŕËË ÍË ˙ ÍË ß ĹÍ ĹÍß ŕ ÍË ÁÍ ŕËÁË ŢÁ ËÍÁË Ë ŕ Ë ÓÍ .ËË˙ ÝÁ ÁÍ ÍÁ ĹŔ ŕß żËË Ţ grid ĹÍß ŕ ŕé éÁË Î ˙ ŕÍ Ţ ÍÁ żËß˙ ŕÁß ˙ Ţ ˙Áß ŕ .ÝÍéé ÜééÁ ÎÁ ˙é Ú ĹÁ Í Ë ŕ ÁË ŕËÁË ÎÁ áË ŕ Ý ËÁß ˙ ˙ Ŕ Í .Ë ËÁËÁ ÎÁ ˙Áŕß Ô ß Ë ŕËÁË Ňé ÁÍ integrity Ĺ Ţß ŕÁ ŢßË ËË Ţ Ř ŮÍÔ ŕ ÁÍ Ëß .Ë ˙ééé éé ˙éé ÍË Áß ÎÁ Ŕ żÍßÔ Java Beans :ĹÁ áË ŃÍ ŢŔ ˙éÁÍéÔ ÍÁÎéÁ ß bean Ţ ˙ÔÁÍ set ß get Áß ŢÁ .Ë˙ ŕË Á Ëé ÎÁ ÁÍ get ß set éÁß ŢÁ ÎÁ ˙ ŕ ÁÍ˙ Ý ÍË .Ë ŕé ËÍÁË bean ˙ééé Ë ŢÁ ŹÁß ŹÜÁŕËÁ ˙Ë ÍË .Ë˙ ŢÁßÁÍ ˙Ďé ÁÍ Á ŢÁ .ËËÍ˙ Í ŮÍÔ ÎÁ ˙ Ë Á .ĹÁ private ŕ Ţééß ŕÍ ˙ÁÍ ŕĎß ŕ ß Ë˙ ŢŔ ÁÍ bean ˙ß ŕÍ get/set ŕéééé ŕéé ééß .ĹÁ Ă ËÁŕËÍ Í ÁÍ˙ ŕ procedural ÝéÁÍé design-time ÍÁÎéÁ é ŕÍßéé ˙ÁÍé ÁÍ˙ ÝÎ Java Beans Ëßé" ĹÁßÍË ŕ Ę ÍË Ü UI Ú ÍÁÎÁ ŢÁ ŹBean Customizer :ËÍßÁ˙ beans Ëéé áË ÁÍ˙ ˙ß ŕÍ ÍË ÍÁ .ËÎ˙ "Ë ˙Ë ÍÁË ÁÍ get/set ˙Ďé ÁÍé éÁ ÎÁ Ë Á ß Ëß ˙Ë ÍÁË customizer Ë .Ë ŕË Á ËË˙ ĹÍ Í ŕ RAD ˙ÍÁÎÁ ÍÁ .ÝÎÁËÍé˙é Ćé ŕ áËÍÍ ˙ŕÍ Í ŕß ˙ÍÁÎÁ ŕÍ ÍË ÚÁ Ĺé ˙ÁÍÔ Ŕ ŹËËß ˙ áÍÁÎÁÝÍ ˙ŕÍ RAD ŕßÁ ˙Ý é RAD ŃÎÁËÍé ˙ééÁ ˙éËé ˙ÁÍ ŢËË ŕß ÍÁ .Ë ÁË ŕ .ËÍÁË ˙éßéÔ ˙éÁÍéÔ ËééÁÍé ˙éÁß RAD .Ë˙ Í ÍÁÎÁ ŕßÁ ÁÍéÎ ŹËéÁŕ Ţ Í ÁÍ ˙ÁÍÔ ˙Áß Í ÝÁ áÎßÍÁ RAD ˙ÍÁÎÁ ÁÍ ˙ééé ˙éÁÍéÔ ÍÁ ˙ .Ë˙ ŕ UI Ú ŢÁß ŕ Ý ŕ Ŕ .ËË˙ ŕěÁÍÁ Ý ÎÁ ˙Ë Íß ŹRAD ˙ÍÁÎÁ ÍÁ ŹËË ÝÁ Ŕ ÁÍÎ żËÍÁË ËÍÍ ÁÍ˙ ÍÍ ˙ÔÁÍ Ëß ÍË RAD ˙Ý ÁÍ ŕËéé Á "Í Í ŕ ˙ Í ÍË ÁÍ Ŕ ß Ţ ÇÁÍ Á ÁÍ ŕËÁË" ŕß ÎÁ .Ý Íß ŕ ĹÁ ŕËÁË ŢÍ Í Ŕ ˙ÁÍÔ .Ë˙ ß Ëéééßéé Üé ŕ Ëß Ë ŕ ËÁß ˙ RAD ˙ÍÁÎÁ ŕ ÍË ÍéÁ ˙é é ŢéÁÍé .ĹÁ ÍÁßË Í áËÍÍ ˙ ŕÍ Ţ áÍÁË Ëé ËéÍË ą°° ˙é ËÁË ÝÁ Ţ ÁÍ Í ÎÁ Í ŕ ÁÍ áÍ Í áÍÁÎÁ áÍßŕÍéé ËéÍË ł° ËÍé ŃÎŔ ËÍË ą°° ß ËÍ áÎ Ë ËÍË ą°° Ĺß .ËË Í ÁÍ Ëß Í Ë ˙ŔÍ ÍÁË ŕ ŢËÍ ˙ÁÍ .ĹÁË ËÁß áÍ ŕ ŹÁÍé˙é ÜßéÁ ŕÍéÍË Ćéé Íé ŕß .ËË Í ÁÍ Ëß Í ÎÍÔ Đ Íé ˙ O/I ŕ .Ĺ ÝÁß ÜßÁ ŢÁ ÎÁ ŕË Á ÁÍ ˙UI ˙ÍÁÎÁ model-side ˙éĹŔ áÎŕË ŕ Ë˙ ÝŐ ÁÍ Î ˙Áŕß ŕ Í ÁÍ Ëßé ˙éÝÍé ËéÁß ˙ ŮÍÔ ŢË .ĹÁ ˙ Ń Ë ÎÁ Ü ÍßÔ ŕ Ößé ŢéÁ .Ëéé ŕé ÁË Í ÝÍ Ëß Ë Í ŕÁ ŢßË ËË Í .Ë˙ ŢŔ ÁÍ áÍÁË áÎ Íß
Resources |
|
|
![]()
Copyright 2001, IT World/ JavaWorld / International Data Group Inc. / PC WORLD Iran. All rights reserved.