ObjectSquare [2004 �N 2 ����]

�m�n�n�G���W�j�A�̗ցI�n

����̃Q�X�g�͌���_����ł��B ���邳��́A�ǂ݂₷���ĕ�����₷�����ƂŗL�����wJava ����Ŋw�ԃf�U�C���p�^�[�������x�̒��҂ł���A �܂��AWeb �T�C�g��A �f�U�C���p�^�[���E���[�����O���X�g�̊Ǘ��ȂǁA ���͓I�Ȋ������Ȃ����Ă��܂��B ����́A���슈���𒆐S�ɕ��L�����b���������������܂����B

wJava ŊwԃfUCp^[x
���h����l Donald Ervin Knuth
�D���Ȍ��t �V�̉��ł́A�����ɂ���܂�������������A���ׂẲc�݂ɂ͎�������B �i���񐹏��@�`���҂̏��@�R�͂P�߁j

���݂̂��d��

w Java vO~ObXx
���邳��́uJava�{�v

-- ���݂͂ǂ̂悤�Ȃ��d�����Ȃ����Ă��܂����H

��{�I�ɂ͕��͂ƃv���O�����������Ă��܂��B �����΂񃁃C���ƂȂ��Ă���͖̂{�������d���ł����A �R���s���[�^�G���ɂ��L���������Ă��܂��B

-- �v���O���~���O�̊ϓ_���珑����Ă��邲�����������ł���ˁB

�����A�����ł��ˁB�v���O���~���O�͑�D���ł��B ����Ƃ������̂��D���Ȃ̂ŁA �v���O���~���O����̘b�����R����ŏ����Ƃ������ƂɁA��������т������܂��B �v���O���~���O������ɋ߂����̂�����܂����B �C���t�H�[�}���ɃR�����g�������āA�t�H�[�}���ɃR�[�h�������B ���t�ƌ��t������݂����悤�ȂƂ��낪�D���ł��B

-- �D���Ƃ͂����A���ꂾ���̂��̂�����������Ƃ����̂́A���Ȃ�̗̑͂�C�͂��K�v�ɂȂ�Ǝv���̂ł����B

�̗͕͂K�v�ł��B �ł��A�܂��A�y���݂‚‚���Ă��܂��ˁB �}�C�y�[�X�ŏ����Ă���̂ŁA�ҏW�҂���ɂ͂�������イ�����f�������Ă��܂�����ǁi�΁j�B

-- ���ɂ��C�ɓ���̃v���O���~���O����͉��ł��傤���B

�v���O���~���O������g���Ƃ��ɂ́A���̂Ƃ��ǂ��́u�C�����v������܂��B ���Ƃ��΁u��������v���������Ƃ��ƁA�u�������Ɓv���������Ƃ��Ƃ�����ɁB �������菑�������Ƃ��� Java �ŁA�������Ə��������Ƃ��� Perl ���C���������ł��ˁB

Java �̏ꍇ�u����Ƃ�����A�����������ɑg�ݍ��킹�悤�v�Ƃ��u�|�������t�B�b�N�ɂ͂��̕������ꂢ�ł���v�Ə��������Ȃ�̂ł����A Perl �̏ꍇ�u����łǂ����B���������ꂾ���ŏ\�����v�Ƃ��������ɏ��������Ȃ�܂��B ���̒��ł�"Java �� Perl"�́A���傤�ǂ��݂������Ă��銴�������āA ���݂̂��C�ɓ���̌���ł��ˁB

�I�u�W�F�N�g�w���Ƃ̊ւ��

Stroustrup wThe C++ Programming Languagex
Stroustrup �� C++ �{

-- ���邳��ƃI�u�W�F�N�g�w���Ƃ̍ŏ��̐ړ_�Ƃ����̂́A��͂茾��Ȃ̂ł��傤���H

�����ł��ˁB �ŏ��ɐG�ꂽ�I�u�W�F�N�g�w���v���O���~���O����́ASmalltalk �ł��B ��w����ɗF�l�� Adele Goldberg ����̐‚��{(�hSmalltalk-80: The Language and Its Implementation�h) ���ꏏ�ɓǂ񂾂肵�Ă܂����B ���̂Ƃ��́u���܂�s���Ƃ͗��Ȃ�����ǁA�ł��������ʔ����v�݂����Ȋ��z�������Ă��܂����B

���ꂩ��AC++ �ł��ˁBStroustrup ����̖{*1���A �����i���X�œǂނ̂��K���ɂ��Ă��܂����B �����A���̃C���^�r���[���󂯂�O�ɋv�X�ɓǂ�ł݂āA�����������ł��ˁB ����A1986�N�̔łȂ�ł����A������ 300�y�[�W���炢�����Ȃ���ł��B �{�ɏ������݂��Ȃ��牽�x�����x���ǂ݂܂�����B ���̖{�ŏ��߂� virtual �֐���m���āu�Ȃ�قǁA����͂������v�Ƌ����܂����B ���̖{��ǂ�ŁAAT&T ���ǂ������o���Ă����v���v���Z�b�T�^�� C++ �R���p�C��*2���t���b�s�[�f�B�X�N�œ������āA �׋����Ă��܂����B

*1Bjarne Stroustrup ���wThe C++ Programming Language�x

*2�v���v���Z�b�T�^�� C++ �R���p�C���F������ C++ �R���p�C���͂܂� C ����ɕϊ����Ă���A�}�V����ɕϊ������Ă��������ł��B�����ŏo�Ă���R���p�C���́AAT&T �x���������� Bjarne Stroustrup �ɂ���ĊJ�����ꂽ���̂ł��B

-- ���̂���̃n�[�h�E�F�A�Ƃ͉��������̂ł��傤���H

PC-9801 VX �ł������ˁB����Ȃɑ������̂ł͂Ȃ������Ǝv���܂��B ���������̂Ȃ�ŖY�ꂿ�Ⴂ�܂������ǁB �n�[�h�f�B�X�N�� 10MB �Ƃ� 40MB �̗e�ʂ����Ȃ��āB

Stroustrup ����̖{��ǂݏI��������A �m�荇���̕ҏW�҂̕�����u�{�������Ȃ����v�Ƃ����b��������ƕ����܂����B �A�ڌ��e�͖����o���Ă��܂������ǁA�{�������Ƃ������Ƃ��A�����Ɗ֌W����Ƃ͂��񂺂�v���Ă��܂���ł����B ���̕ҏW�҂��񂪂�����������u�{�������Ȃ����v�Ƃ������t���S�ɂЂ��������āA �������A�����Ă݂悤�A�Ǝv���܂����B

�ŁAC++ �ƃI�u�W�F�N�g�w���Ɋւ���{�������n�߂���ł���B �܂��߂ɏ�������ł����A�c��͍Ō�̏́A�Ƃ����Ƃ���ŁA���Ă������c�s���l�܂�������āA�Ƃ��Ƃ������ł��܂���ł����B �����͓Ɛg�ŁA�Ɛg���Ǝ��R�Ȏ��Ԃ������͂��Ȃ̂ɁA���ǂ̂Ƃ���Ɛg����ɂ͈�����{�������グ���Ȃ�������ł���B �������Ă��珉�߂Ė{���܂Ƃ߂邱�Ƃ��ł��āB����� C �̓��发�ł����B �Ɛg����ɏ����グ���Ȃ��������e�͍��ł����ꂢ�Ɏ���Ă����ł����ǁA ��������邽�тɁA���‚��u���Ԃ�����Ȃ����珑���Ȃ��킯����Ȃ��v���Ďv����ł��B ���R�Ɏg���鎞�Ԃ��������񂠂�������ɂ͈���������グ���Ȃ������B �Z�����Ď��Ԃ��Ȃ��悤�Ȏ���ɂȂ��āA�����グ�邱�Ƃ��ł������Ă��Ƃ́A �����̐S�ɗ��߂Ă��������Ȃ��āB

wJava ŊwԃfUCp^[x
Strategy �p�^�[��

-- �Ȃ�قǁB�b�͕ς��܂����ǁA�I�u�W�F�N�g�w���̗L�p���ɂ‚��Ă͂ǂ����l���ł����H

����A�����ǂ��킩���Ă��Ȃ���ł����ǁB �I�u�W�F�N�g�w���v���O���~���O�Ɍ��肵�Ęb�����܂����A �����܂������邱�Ƃ́u���O��Ԃ�������Ă���v���ĂƂ���ł��ˁB �Ⴆ�΁A�傫�ȃN���X���C�u�����ɑ���������̂� C �ŏ������Ǝv������A �֐��ɂ��낢��v���t�B�b�N�X���‚����肵�āA�Ȃ��[�����O�ɂȂ���������肵�܂��ˁB ogis_database_open �Ƃ��ˁB �p�b�P�[�W��N���X�̂悤�ȒP�ʂŖ��O��Ԃ��p�^�p�^���ƕ�����Ă���Ȃ�A �X�̃��\�b�h�͒Z�����O�ł������B �Ⴆ�� open �Ə��������ł����B����͗ǂ��ˁA�Ǝv�����Ƃ͑����ł��B

���ꂾ���Ȃ炢���񂾂��ǁA�\�[�X�����Ă��� open �Ƃ������Ƃ��ɁA�������悭�킩��Ȃ��B ���Ƀ|�������t�B�Y�����g���Ă��āA �����œn����Ă����I�u�W�F�N�g���{���ɂ͂ǂ̃N���X�̂��̂����킩��Ȃ��ƁA ���\�b�h�̎��̂͂ǂ��Ȃ̂��A�킩��ɂ����ł���ˁB C�ŕ��ʂɏ����Ă���� grep ��������Ί֐������‚���̂ɁA ���I�ɒǂ�Ȃ��Ɩ{���͉��Ȃ̂��A�{���͂ǂ��Ȃ�̂����悭�����Ȃ��B ���������Ӗ��ł́A�ǂ��ʂƈ����ʂ𗼕������Ă���悤�ȋC�����܂��ˁB

���ꂩ��A�c��ȃN���X���C�u�������������Ƃ��܂��B ����ƁA�v���O���~���O�����Ă��鎞�Ԃ��́A���C�u�����̃��t�@�����X�𒲂ׂĂ��鎞�Ԃ������B �����������������Ƃ��A �����̎�ō��ׂ��Ȃ̂��A�����悤�Ȃ��̂��ǂ����ɂȂ����T���čė��p����ׂ��Ȃ̂��A ������l���Ȃ����Ⴂ���Ȃ��B �‚܂�́A�v���O���~���O�Ƃ�����ƈႤ�����̊������K�v�ɂȂ�B ������A�N���X���C�u�����𗘗p����΁A�����̎�ŃR�[�f�B���O���镪�ʂ������Ă��ꂵ������ɁA ���ו��̂��߂Ɏg��Ȃ��Ⴂ���Ȃ����Ԃ������Ȃ�񂶂�Ȃ������ċC�����܂��B �����A�R�[�f�B���O�̕��ʂ����ɒ��ڂ���΁A�I�u�W�F�N�g�w���͑f���炵���A�n�b�s�[�Ƃ������������ǁA ������T�Ɍ����Ȃ�����������̂ł͂Ȃ����Ǝv���܂��B

-- ���邳��̂悤�ɁA�v���O���~���O���������D���ȕ��ɂƂ��ẮA�Ⴆ�� UML �Ȃǂ͂Ƃ��‚��ɂ������̂Ȃ̂ł��傤���H

���₢��A����Ȃ��Ƃ͂Ȃ��ł���BUML �͍D���ł��ˁB �Ȃ����Ƃ����ƁA���́u�f�U�p�^�{�v�ł� UML ���g���܂������ǁAUML �̓R�~���j�P�[�V�����̃c�[���Ȃ�ł��ˁB UML ���g���ĕ\�����邱�ƂŁA���܂��N���ƈӎv�a�ʂ��ł���A�������厖���Ǝv����ł��B

���̓R�[�f�B���O�͍D���Ȃ�ł����ǂ��A�Ȃ��D�����Ƃ����ƁA���ꂪ�ŏI�I�ɓ����v���O�����ɒ������Ă��邩��Ȃ�ł��ˁB �R�[�h�́A�R���s���[�^�Ƃ��܂��R�~���j�P�[�V���������i�Ȃ�ł��B �ł��A�l�Ԃɐ�������Ƃ��ɂ́A�����Ȃ�R�[�h�ڍׂ������Ă����肪�����Ă��܂��ꍇ������܂���ˁB ����ȂƂ��ɂ́A����ς�_�C�A�O������`���Đ�����������͂邩�ɗǂ��B �v����ɁAUML ���g���ƌ��ʂ�����Ƃ��ɂ͎g���΂悢�B �ł��K�v���Ȃ��Ƃ��܂� UML ���g���̂͋����Ȃ��ƁB �g�������Ԉ��Ȃ���� UML �͗ǂ��Ǝv���܂���B

�u����̂��Ƃ��l����v�{�̏�����

Java ŊwԃfUCp^[
���邳��́u�f�U�p�^�{�v

-- �f�U�p�^�̖{�̘b�肪�o�܂������A���邳���wJava ����Ŋw�ԃf�U�C���p�^�[�������x���������Ǝv�������������͂ǂ̂悤�Ȃ��̂������̂ł��傤���H

�{������ŁAGoF �{*3�����ς݂ɂȂ��Ă�����ł���B �����A���̓f�U�C���p�^�[���Ȃ�Ă��񂺂�m��Ȃ��āB ����͉����낤�A�Ǝv���Ăς�ς���ƌ�����ł����A�����ς�킩��Ȃ��B �����ς�킩��Ȃ����ǁA�������������Ƃ������Ă���Ǝv������ł��ˁB ���̑�ނ́A�����Ƃ킩��₷����������ׂ������Ċ����܂����B ����ł��̂Ƃ��u�悵�A���̖{�� Java �ŏ������B�킩��₷���{�ɂ��悤�v�ƍl������ł��B ���ꂪ���������B

���́u���̖{���킩��ɂ����̂͂����ƁA�R�[�h���u�c�i�Ă�Ă�j�v�ŏȗ�����Ă��邩�炾�v�Ǝv���A �u�����R�[�h�v���ڂ����{�ɂ��悤�ƍl������ł��B �u�����R�[�h�v�Ƃ����̂̓v���O���}�ɂƂ��Ĉ�ԋ�̓I�ł킩��₷�����̂��B �����ʂ��Đ�������̂��A�v���O���}�ɂ͍ł��悢�Ǝv������ł��B

*3Erich Gamma �����wDesign Patterns: Elements of Reusable Object-Oriented Software�x �i�M��w�I�u�W�F�N�g�w���ɂ�����ė��p�̂��߂̃f�U�C���p�^�[���x�j

-- �f�U�C���p�^�[���E���[�����O���X�g�̂������������̖{�ɂ���̂ł��傤���H

�����A�����ł��ˁB �ŏ��́A�f�U�p�^�{�̔̑��̂‚��肾������ł��B ������ Web �y�[�W�� �f�U�C���p�^�[���̃��[�����O���X�g�𗧂��グ�Đ�`����΁A ���̖{�𔃂��Ă����l���o�邩���A���Ďv������ł��B �p�^�[���ɋ����̂���l�Ƃ��A�I�u�W�F�N�g�w���̋����̂���l�Ƃ��A�������񂢂�Ǝv���̂ŁB �Ƃ��낪�A�v���������������傫��������ł��B ���[�����O���X�g�𗧂��グ�Ă����Ƃ����Ԃɉ��S�l�Ƃ������ɂȂ��Ă��܂�����ł��ˁB ��������Ă��āu����͂܂����ȁv�Ǝv���܂����B �܂����Ƃ����̂́A���ꂾ�������̐l���p�^�[���Ƃ������̂ɋ����������ďW�܂��Ă��Ă��ꂽ�̂�����A ����������̂͂悭�Ȃ��Ƃ����Ӗ��ł��ˁB ���̖{�̂��߂ƌ��肷��̂���߂āA �p�^�[����I�u�W�F�N�g�w���̏������ɍL�����p�ł���悤�Ƀ��[�����O���X�g�̏Љ��ύX���܂����B ���� 3000 �` 4000 �l�ɂ��B���Ă��܂��B �Ƃ��ǂ��b�肪����オ�����肵�āA���̂��C�ɓ���̃��[�����O���X�g�Ȃ�ł���B

-- ���邳��̒���� Web �T�C�g��q�����Ă���ƁA�ǂݎ肪�킩��₷���悤�ɁA�Ƃ����S�����̂悤�Ȃ��̂�������̂ł����B

���[��A�ǎ҂ɂ킩��₷���{�������S�����A���͂������S�����͂�������‚����Ȃ���ł��B ����́u����̂��Ƃ��l����v�Ƃ������̂ł��B ����̂��Ƃ��l���Ȃ��ƁA�ǂ݂ɂ������͂ɂȂ��Ă��܂���ł��ˁB

����͕��͂Ɍ��������Ƃł�����܂���B ��{�I�Ɂu����̂��Ƃ��l����v�ƁA���̒��̑����̂��Ƃ����܂����܂��B �ǂ�Ȃ��d���ł������ł��ˁB����̂��Ƃ��ق�̂�����ƍl���Ă݂邾���ŁA�����Ԃ�ς���ł���B

-- �m���ɁA�d���̂��Ƃ�������Ȃ���������Ȃ��ł��ˁB���邳��̒���́A������؍��Ȃǂł��o�ł���Ă��܂����A����͏o�ŎЂ̕�����b������̂ł��傤���H

�C�O�ł̏o�ł́A�\�t�g�o���N�p�u���b�V���O���񂪂ƂĂ�����΂��Ă�������񂾂Ǝv���܂��B ��p�⒆���̏o�ŎЂ���I�t�@�[�������āA���� Perl�A�f�U�p�^�A�}���`�X���b�h�̖{���|�󂳂�Ă��܂��B

������ɖ|�󂳂�Ă����f�U�p�^�{���ς�ς�߂����Ă����Ƃ��̂��Ƃł����A �͂��߂̕��Ɂu����_�搶�Ɋ��ӂ��܂��v�Ɠ��{��ň�����Ă������̂����‚�����ł��B ���̖|��҂��������u����_�搶�Ɋ��ӂ��܂��v�Ƃ������t�́A ���҂ł��鎄�ЂƂ�Ɍ������ď����ꂽ���̂Ȃ�ł��ˁB �o�ł��ꂽ���Ђ��g���āA��������l�Ƀ��b�Z�[�W�𑗂��Ă��ꂽ���ƂɂȂ�܂��B ����������Ƃ��������������܂��āA �|��Əo�łɊւ�������� ���肪�Ƃ��Ɠ`���ė~�����A�ƃ\�t�g�o���N�p�u���b�V���O����ɂ��肢���܂����B

wJava ŊwԃfUCp^[x Facade p^[
Facade �p�^�[��

-- �|����ĂȂ��Ȃ��s�v�c�ł���ˁB���邳��̏����ꂽ�{���A���̂܂܂ǂȂ����󂷂킯�ł���ˁB

�����A�͗��ĂȂǂ������ł����A�C���X�g�Ȃ񂩂����̂܂܎g���Ă��܂��B

���Ȃ݂ɁA�f�U�C���p�^�[���{�̃C���X�g�̌��Ă�`�����͎̂��Ȃ�ł���B ���Ƃ��΁AFacade ���Ă����������̂ł�����āB Facade �́A�����Ⴒ����Ƃ�₱�������Ȃ��̂𒆂ɓ���āA����Ȋ����ɁB �i*�ҏW���� �E�}�wJava ����Ŋw�ԃf�U�C���p�^�[�������x��� Facade �p�^�[���j

���ꂩ��A�e�͂̕���Ƃ��� Facade �́u�V���v���ȑ����v�Ƃ��A Mediator �Ȃ�u����͑��k��1�l�����v�̂悤�ɁA�_�炩�����{��ŕ\�����Ă����ł��B �A�J�f�~�b�N�ȍd�������ɂ������Ȃ������B �ς��Ɠǂ�ŁA�����ƕ�����悤�ɂ����������B �y���݂Ȃ���d�����Ă����̂��o���Ă��܂��B

-- �A�J�f�~�b�N�ȍd���������D�܂��������܂����ǁA�킩��₷��������͂�ǂ��ł��ˁB

���发���āA������w�p�_���̎Q�l�����ɋ�����Ȃ��ł���ˁB �����I�ȈӖ��ł́A����ł悢�̂��Ǝv���܂����ǁA �ŋ߂�������A�_���������l�̒��ɂ́A �����f�U�p�^�{�ł͂��߂ăp�^�[���ɏo������l������񂾂낤�Ȃ��āi�΁j�B ���O�Ƃ��Ė��O����������{�ł͂Ȃ��A �{���̈Ӗ��Ŗ��ɗ��–{�A�ǎ҂̗����̏����ɂȂ�{�����������ł��ˁB

����AIT �̋ƊE���瑼�̋ƊE�֓]�E����Ƃ��������烁�[���𒸂��܂����B �ŁA���̕��͔�������������̖{���A�S���̂Ă��������l�ɂ������肵����ł����āB �ł��A���邪�������{�����͋L�O�Ɏ����Ă������āB ���̃��[���������Ƃ��A�������A�����A���[��Ɨ�������Ăł��ˁB ������Ɠǂ܂��{�A�{���̈Ӗ��Ŗ��ɗ��–{�����ꂩ��������Ă��������ȂƁB

-- �ȂɂȂɊw��̂Ȃ�Ƃ��_���Ȃ�Ă��񂺂񋻖��Ȃ��̂ł��傤���H�i�΁j

�i�΁j ����A����Ȃ��Ƃ͂Ȃ��ł���B ����͌�����Ȃ��悤�ɂ�����ƌ����Ă����Ȃ����Ⴂ���܂��񂯂�ǁA ���͊w�Ґ搶���Ȃ�������ɂ������킯�ł͂Ȃ���ł��B �܂������t�ł��B ���̖{���A�x�[�X�͂�����Ƃ����A�J�f�~�b�N�Ȗ{�����ɂ��Ă���킯�ł����B ���́A�����̏����{�̓A�J�f�~�b�N�ȗ̈�Ɠǎ҂Ƃ̋��n�����Ǝv���Ă����ł���B

�����҂̘_���́A ��ʐl�̊��o���炷��ƍׂ�������Ƃ���܂ł������莦���Ȃ��Ⴂ���Ȃ�����Ȃ��ł����B ���ʂ̓ǎ҂ɂƂ��ẮA�����ǂނ͔̂��ɑ�ς��Ǝv����ł���B ����ɁA�̂��搶����ʏ��������ƁA �킩��ɂ������̂ɂȂ����Ⴄ���Ƃ��s�v�c�ɑ����c�B �������A��O������܂����ǁB ���̂�����̃M���b�v�𖄂߂���̂Ƃ��āA ����҂��邢�͒����҂̑��݂��d�v���Ǝv���Ă��܂��B

-- ���������Ӗ��Ō��邳��̏�����钘��Ƃ����̂́A�����R���Z�v�g�ŋ؂��ʂ��Ă��܂��ˁB

�����ł��ˁB ���́A���发�͏����̂��ƂĂ������ł��B ���肪�܂��悭�m��Ȃ����Ƃ�`������āA�������Ȃ��ł����B ��b�ɂȂ�m��������Ȃ��Đ������Ȃ��Ȃ��i�܂Ȃ����Ƃ�����܂��B �ł��A�����葁���������邽�߂Ɂu�����^��������v�ɂȂ��Ă͂����Ȃ��B ������P���ɂ��邽�߂ɍׂ��������𖳎����邱�Ƃ͂���܂����A �S�̑��������悤�Ȑ����͂悭�Ȃ���ł���ˁB

����A�Í��Z�p�̓��发���o�ł��܂������A �Í��w�҂���ǂ܂�Ă��p���������Ȃ����e�ɂ��Ȃ��Ƃ����Ȃ��Ǝv���Ă���΂�܂����B ������񂻂�ł��āA��ʂ̐l�ɂ��ǂ݂₷���悤�ɍH�v����킯�ł����B �悢���发�́A�����̂�������������āA���M�ɂƂĂ����Ԃ��������ł���B

�{�������A�v���[�`�ɂ‚���

ÍZp
���邳��́u�Í��{�v

-- ���邳��́A�{�������ߒ����I�����C�����r���[�����Ă�������Ⴂ�܂����A�ǂ����������������Ŏn�߂�ꂽ�̂ł��傤���H

�ŏ��́ACGI �̖{*4�������Ƃ��ɁA �I�����C���� Perl �X�N���v�g�̃��r���[������Ă��炢�܂����B �X�N���v�g��ǂ�ł�����ċC�ɂȂ�Ƃ��낪�Ȃ����A���Ă��炨���Ǝv������ł��ˁB ���ꂪ�A���Ɨǂ����ʂ𐶂񂾂�ł���B �Ⴆ�΁A���̃N�b�L�[���[�`�������ǂ��N�b�L�[���[�`�������r���[�A�ɑ����Ă�������肵�܂����ˁB

���������������̂𑼂̐l�̎��_�ŃR�����g���Ă��炤�͖̂ʔ����Ȃ��Ďv�����̂ŁA ���� Perl �̓��发*5�̎��ɂ́A���e���̂��̂����r���[���Ă��炨���ƁB �ł��A���r���[�A���񂪂���ƕ��ʂ������Ȃ��Ă��܂��X��������܂��B �ǂ����A�������q�ɏ���ď��������Ă��܂��悤�ł��B�i�΁j

�����悤���f�U�p�^�{�̎����A �X���b�h�{*6�̎����A�ŋߏo���Í��{*7�̎����A���r���[�A�����債�ēǂ�ł�����Ă��܂��B

*4�wPerl �ō�� CGI ����@���p�ҁx
*5�wPerl ����v���O���~���O���b�X���@����ҁx
*6�wJava ����Ŋw�ԃf�U�C���p�^�[������ �}���`�X���b�h�ҁx
*7�w�Í��Z�p���� �\�\ �閧�̍��̃A���X�x

-- �I�����C�����r���[�Ƃ����̂́A��͂�ǂ����@�Ȃ̂ł��傤���H

�����̏��������͂����̐l����ǂ�Ȃӂ��ɓǂ܂�邩���킩��A �Ƃ����Ӗ��ł͔��ɗǂ��ł��ˁB �����A���Ȃ��Ԃ�������̂͊m���ł��ˁB ���Ȃ��Ƃ��A�S�Ă̒��҂ɂ������߂ł�����@�ł͂Ȃ��ł��B �_�o�̑��������Ȃ�K�v�ł��i�΁j�B

-- ����ς肠�́A���Ȃ�s���w�E�Ƃ��c�U���I�ȃ��r���[���[�����󂯎�邱�Ƃ�����̂ł��傤���H

���[��B�U���I�ȃ��[���Ƃ����̂͏��Ȃ��ł�����ǁA ���̐l������e��ᔻ����ē{��o�����҂ɂ͌����Ȃ����@���Ǝv���܂��B ���́A�����̏��������͂Ɋւ��ĂȂ�A�ǂ�Ȉӌ��ł����Ă� Welcome �ł�����ǁB ���ƁA�����I�ɑ�ςȂ�ł���B�g�[�^���ʼn���ʂɂ��Ȃ�̂ŁB

-- ���Ƃ����f�U�p�^�{�̍�ƃ��O��q�����܂��ƁA�������y�[�X�ŏ����Ă�������Ⴂ�܂��B���̂��тɂ�������̐l���烁�[�����Ԃ��Ă���ƂȂ�ƁA�����ȗʂɂȂ�܂���ˁB�����S���ǂ�ŁA�ԐM����Ă���̂ł��傤���H

�������������ɂȂ��Ă��܂��B �{����͏����B��͏������烌�r���[�A�̕��Ƀ��[���ő���܂��B ���r���[�A�̕��ɂ́Y�؂͉����Ȃ��̂ŁA���ꂼ�ꂪ�΂�΂�ɕԂ��Ă����ł��B �ŁA���̂ق��͂���������S�����e�ɔ��f������񂶂�Ȃ��āA�X�g�b�N���Ă����ł��B �������Ńo�b�`�����I�Ɍ��e�ɔ��f���܂��B �����Ƃ��A�ԐM�������Ƃ��Ɉꉞ�ڂ͒ʂ��Ă����܂����B

������A�����Ƃ����Ă��A�����Ă������������[���ɂ����Ԃ��Ă��܂��킯�ł͂Ȃ��ł��ˁB �������A�����ɕԂ��������ǂ��Ǝ������f������̂ɂ‚��Ă͂����ɕԂ��܂��B �����畽�ς���ƁA�\�ʂɈ�ʂ��炢�Ԃ��Ă��邩�ȁc�B

Web �T�C�g�ɂ‚���

wJava ŊwԃfUCp^[ }`Xbhҁx Reader-Writer p^[
Reader-Writer �p�^�[��

-- ���邳��� Web �T�C�g�̓��[�����O���X�g�Ɠ����ɗ����グ��ꂽ�̂ł��傤���H

Web �T�C�g�̕��������Ɛ�ł��ˁB 1995�N���炢���Ǝv���܂��B �͂��߂�1�y�[�W�����ŁuC �̖{�������܂����v�݂����Ȃ��Ƃ��y�[�W�ɍڂ��Ă��܂����B �ł��A�N��������ɂ�����������܂���ł����ˁB �A�N�Z�X�J�E���^���S���������A���܂� 1 �������Ǝv������A����͎����������݂����ȁi�΁j�B

-- �i�΁j ���邳��̃T�C�g�Ƃ����΁A�v���O���}�̐S�̌��N�Ɋւ���R���e���c���ʔ����ł���ˁB

����͔��ɐl�C�̂���y�[�W�ł��ˁB �ق��ɂ��A���ł������ėǂ��ł���Ƃ����y�[�W�u���l�̎��̓��o�̎��v��A �u���Ȃ��̂��߂ɁA�F��܂��v�Ƃ����y�[�W������܂��B �������������ȗʂ����܂��ˁB

-- ��͂�A�b�������ł��A�C�������y�ɂȂ���̂Ȃ̂ł��傤���H

�����ł��ˁB �u���o���v�͎��̍D���ȃR�[�i�[�ł��B ������Č����Ȃ�Γ��̓t�H�[�����ۂ‚�Ƃ��邾���Ȃ�ł���B ���M���b�Z�[�W�͎��ɑ������ł����A���͕Ԏ��┽�������Ȃ����Ă��Ƃ����[���ɂȂ��Ă��܂��B �Ƃ������Ƃ́A�t�H�[���ɏ����đ��M�����Ƃ��ɁA�ǂ��ɂ������Ȃ��Ƃ��Ă��A���ۘ_�I�ɂ͓����Ȃ킯�ł���ˁB �ł��A����肪�u���������ɁA�����̘b�𕷂��Ă����l������v�Ƃ������芴���Ă��炤���Ƃ��d�v�ȈӖ��������Ă����ł��B ���Ƃ��Ԏ������炦�Ȃ��Ă��A�u������Ǝ����̌��t�𕷂��Ă����l������v�ƈӎ����邾���ŁA �ƂĂ��C�������y�ɂȂ���̂Ȃ̂ł��ˁB

-- ���́u���o���v�̃A�C�f�B�A�́A�ǂ̂悤�ɂ��Ďv���‚����̂ł��傤���H

���́A�u���o���v�����܂ꂽ�o���̂Ƃ���ɂ������܂������A �l�Ƀ��[���������ƋC�����y�ɂȂ邱�Ƃ��Ă���܂���ˁB �ʔ������ƂɁA���肩��̕Ԏ������Ȃ��Ă��A���M���������ŋC�����y�ɂȂ���������A�Ƃ����o���͒N�ɂł�����Ǝv����ł��B ��������A�C�f�B�A�����Ă��܂��ˁB ���������t�H�[�����������ʔ����񂶂�Ȃ����ȂƁB �����������ɑ΂��Ăǂ��������O�������ł��傤���˂��ƁA ������ Web ���L�ŕ����Ă݂��Ƃ���A �����̐l����u���l�̎��̓��o�̎��v�Ƃ����ӌ���������āA ���o�����ł�����������ł��B

-- Web �T�C�g���^�c���邱�Ƃ́A����������тƂ‚Ȃ���̂ł��傤���H

������񂻂��ł���BWeb �T�C�g�͍ł��_�C���N�g�ɓǎ҂̔��������炦�܂�����B �v�����قǂ͔������ė��Ȃ����̂ł����ǁi�΁j�B ���A���� Web �T�C�g�ɂ͑S���� 1000 �y�[�W���炢����܂����A ���̂��炢����ƁA�����Ȑl���ǂ�łƂ��ǂ����������܂��ˁB

-- �v���C�o�V�[�����J���邱�ƂɊւ����R�͂���܂��񂩁H

�ǂ�ł���������΂킩��Ǝv���܂����A����ȂɌ��J�͂��Ă��܂���B �Ƒ��������Ă��܂��̂ŁA�Z�L�����e�B��A�ʐ^��Z���͏����Ȃ��Ƃ��A���������_�ł͐_�o���g���Ă��܂��B �l�I�ȏ��͌��J���Ă��܂��񂪁A ���̂��Ƃ𗝉����Ă��������̂ɏ\���ȏ��͌��J���Ă���悤�ɂ͎v���܂��B ��������̕��͂����J���Ă��܂��̂ŁB ���� Web �T�C�g�͕��͂��d�v�Ȗ����������Ă��܂��ˁB ���͎����̃T�C�g�����ɍD�������A�厖�ɂ��Ă��܂��B

-- ���邳�񂪍u���Ȃǂ���Ă���Ƃ����b�����܂蕷�������Ƃ��Ȃ��ł��ˁB

�����B �������̃Z�L�����e�B�̘b������܂����ǁA��{�I�ɂ͐l�ɂ��܂���Ȃ����Ƃɂ��Ă����ł���B 2003 �N�͐l�ɉ�߂�����������܂���B�C���^�r���[���󂯂��肵�āi�΁j�B �Ƃ��ǂ��A�T�C�g��������A������ǂ񂾂肵��������A �u�����Ă��������܂��񂩂Ƃ������肪�����\���o������̂ł����A���f�肵�Ă��܂��ˁB

��E�d����

wJava ŊwԃfUCp^[x Template Method p^[
Template Method �p�^�[��

-- ���邳��̂���Ƃ����܂��ƁA�ǂ����������̂ɂȂ�܂����H

��c�B ���[��A�d���́A���͏�������E�v���O������������B ��́A���͏�������E�v���O��������������Ċ����Ȃ̂Łc�B ���A�Ƃ��ǂ����R�[�_�[�𐁂��܂��ˁB

-- �Ȃ�قǁB���d���́A����ł���Ă���̂ł��傤���H

���[�Ƃł��ˁA���C���ɏ����Ă���̂́A�}�N�h�i���h�ł��ˁB�i�΁j �}�N�h�i���h����Ԃ����B ���ꂩ��A�f�j�[�Y�B�t�@�~���[���X�g�����Ȃ�f�j�[�Y����Ԃł��B

-- �i�΁j ����A�d����v���C�x�[�g�A��̐؂�ւ��͂ǂ�����Ă���̂��ȁA�ƁB

���A�����������Ƃł����i�΁j�B ����A����܂�؂�ւ��Ă��Ȃ��ł��ˁB �Ƃɂ���Ƃ��́A���傱���傱�v���O��������������A������Ǝq���ƗV�񂾂�Ƃ��B �q�����u���S�u���b�N��������ɂ�낤�v�Ƃ������ƁA ��������ɂ��܂��̂ŁB������Ƃ킩��Ȃ��ł��B

-- ����ƍ����͉������牽���܂Ŏd���A�Ƃ������ӂ��ɂ́A���ɂ͌��߂ĂȂ���ł����H

�Ȃ��킯�ł͂���܂���B �Ⴆ�΁A��{�I�ɌߑO���͖{�������Ă��܂��B �ߑO���͈�ԓ������ǂ����ԂȂ�ł��ˁB���́u�����̎��ԁv�ƌĂ�ł��܂��B ���̎��ԑт͈�ԓ����g��Ȃ��Ă͂����Ȃ��d�������Ă��܂��B

-- �Ȃ�قǁB���������Ă�����͎��Ԃ��t�]����Ă���Ƃ����C���[�W������̂ŁA�ߑO�ɒ��슈��������Ă���Ƃ����̂͋����ł��ˁB

�ł��A�ǂ��Q�ċN����������ԓ��������܂���B �ŋ߂͂�����ƕ���Ă��Ă��邯�ǁA�{���ɂ܂��߂ɖ{�������Ă���Ƃ��͌ߑO�𒆐S�ɂ��Ă܂���B ��ɂ́A�}��`���܂��B�}��`���Ƃ����āA��𓮂����Ă��鎞�Ԃ��������炩������܂���ˁB ���ƁA�킩��₷���}���������߂ɂ́A�������������ق����悢�B ������肷����ƁA���G�Ȑ}�ɂȂ����Ⴄ�X��������܂��B

���E�����o�[�X�G���W�j�A�����O

wJava ŊwԃfUCp^[ }`Xbhҁx Immutable p^[
Immutable �p�^�[��

-- �D���Ȍ��t�ɂ‚��Ăł����B

�u�V�̉��ł́A�����ɂ���܂�������������A���ׂẲc�݂ɂ͎�������v�Ƃ������t�ł����A ���͂��������P�������āu���݂̂Ȃ��ׂĂɎ�������v�Ɗo���Ă��܂��B

���̌��t�́u�����ȃ^�C�~���O�v�ƂƂ炦�Ă��ǂ��ł��B �������Ȃɂ������Ȃ��Ƃ����Ȃ��u���v�A���邱�Ƃɂӂ��킵���u���v�Ƃ����̂������ł��B ������ƌ���������΁u�������S�����x�z�ł���ȂǂƎv���������Ă͂����Ȃ��v�Ƃ������Ƃł�����܂��B

�l���āA�����̌v��𗧂Ă܂���ˁB ���΂܂łɂ����Ȃ��āA���΂Ō������āA���΂ł���Ȏd�������āA�N��������ɂȂ��āA �������ɉƂ𔃂��Ă̂�т�߂����݂����ȁB �ł��A������Ă�����Ƙ����Ȃ�ł���ˁB �����̗͂��ߐM���Ă���Ƃ������A���ǂ���ɕ����������Ǝv���ȁA�Ƃ����S�������ƍD���Ȃ�ł��B

-- ���h����l�́H

���h����l�Ƃ����̂͂Ȃ��Ȃ�����ł��ˁB ���́A�C�G�X�E�L���X�g�Ƃ����������������Ă�����ł����ǁA�C�G�X���܂̏ꍇ�A���h����l�Ƃ����̂Ƃ�������ƈႢ�܂��ˁB

���A�N�k�[�X�搶�͂����ł��ˁB ���̖{����������{�ł����邵�A���̐l���N���X�`�����ł����B �ŋ߁w�R���s���[�^�Ȋw�҂��߂����Ɍ��Ȃ������x�Ƃ����{�ŁA�_���܂ɂ‚��Ęb�����Ƃ����{���x�X�g�Z���[�ɂȂ��Ă�����ł���B ������wThings a Computer Scientist Rarely Talks About�x*8 ���������ȁB

*8Donald Ervin Knuth ���wThings a Computer Scientist Rarely Talks About�x�i�M��w�R���s���[�^�Ȋw�҂��߂����Ɍ��Ȃ������x�j

-- �A�C���V���^�C�����N���X�`���������������ł����A�Ȋw�҂ɂ͑����C�����܂��ˁB

����͂ƂĂ��[���������܂��B

�Ȋw���āA����΁u���E�����o�[�X�G���W�j�A�����O�v���Ă����ł��ˁB ���E���\�����Ă�����̂𒲂ׂ���A�����@���𒲂ׂĂ��邶��Ȃ��ł����B ������āA�N����������v���O�������v���O���}����͂��Ă���̂Ɠ����悤�Ȃ��̂ł��ˁB ���̃N���X�Ƃ��̃N���X�����������֌W�ɂ���Ƃ��A �e�X�g�P�[�X��^���āA�U�镑���𒲂ׂ���Ƃ��B ���\�Ȍ�����������΁A�Ȋw�͐��E�����o�[�X�G���W�j�A�����O���Ă���݂������ȁA�ƁB

����łł��ˁA��������厖�Șb�Ȃ�ł����B ���o�[�X�G���W�j�A�����O���Ӗ������‚̂́A���̃V�X�e����������݌v�҂����݂���Ƃ������Ȃ�ł��B ������A�������f�U�C�������݌v�҂����Ȃ����́A ���������f�U�C���Ȃǂ���Ă��Ȃ����̂̓V�X�e���Ƃ͌ĂׂȂ����A ���ׂĂ��‚܂�Ȃ��B

���̐����̂��̂�T���Ă���T�C�G���e�B�X�g���A���̌��������ɂ���{���̃f�U�C�i�[�A ���E���N���G�C�g�����N���G�C�^�[�̑��݂��ӎ�����̂́A���R���Ǝ��͎v���܂��B ������A�Ȋw�҂����E�̑n����Ƃ��Ă̐_���܂�M����Ƃ����̂́A�ƂĂ����R�Ȃ��Ƃ��Ǝv���܂��B

���G���W�j�A�ւ̃A�h�o�C�X

wJavaŊwԃfUCp^[x Mediator p^[
Mediator �p�^�[��

-- �Ō�ɁA��y�Ƃ��āA���̃G���W�j�A�ɃA�h�o�C�X�Ȃǂ��������܂��ł��傤���H

��‚���܂��B ��–ڂ́u�ア�l�v�ւ̃A�h�o�C�X�ł��B ���̋ƊE�̂��d���́A��x���܂ő�ςł���ˁB �܂��߂Ȑl�͓��ɐS���ϋl�܂��āA�̂��󂵂Ă��܂��ꍇ�������Ǝv���܂��B �u���������ǁA�K���ɂ��ڂ낤��v�ƃA�h�o�C�X�������ł��B

-- �K�����ĂƂ��낪����ł���ˁB

�����B���̓K���ȃ|�C���g�Ƃ����̂́u����̂��Ƃ��l����v���ƂŌ��‚����ł��B �‚܂�A���Ƃ��΁A���������v���O�����́A�N���K�v�Ƃ��Ă���̂��A�ǂ�ȕ��ɂ��Žg���̂��A �Ƃ������Ƃ��l���Ă����ƁA�悢�|�C���g�����‚���̂ł͂Ȃ��ł��傤���B

���ꂩ�������‚́u�����l�v�ւ̃A�h�o�C�X�B ���̒��ɂ́u��������Ηǂ��v���Ďv���l�������ł���ˁB ���Ƀv���O���}�ɑ�����������܂���B ��������Α���ɉ��������Ă��ǂ��B����̖{���̎p�Ȃ񂾂���A����ɓ˂��‚��Ă��ǂ��B ���������Ƃ����ׂĂ��A�ƁB �ł��A���Ƃ����������Ƃł����Ă��A����ւ̎������ɂ���ẮA�����Ȃ��s�ׂɂȂ邱�Ƃ�����܂��B �t�ɁA����ɗǂ���Ǝv���Ă��Ă��A�R���‚��⌶�z�����������̂��������ǂ��Ȃ��B

����ŁA����͐����̌��t*9�Ȃ̂ł����u���������Đ^�������v���Ƃ��厖���Ǝ��͎v���Ă��܂��B ���������Ƃ��A����ɓK�؂ɓ`���邱�Ƃ��厖���ƁB ���e�����ł͂Ȃ����������厖���ƁB �����Ȃ��ƁA���������̐��������Ƃ��{���̈Ӗ��ł͐������Ȃ��Ȃ��Ă��܂��܂���ˁB ���������A����Ɏ󂯓�����Ȃ�������A�������ӌ������ʂɂȂ�B

*9�V�񐹏��@�G�y�\�l�ւ̎莆�S�͂P�T�߂��u���������Đ^�������v

���_��U��񂵂āA����̐l�̋C���������‚��Ă΂��肢��Ƃ����l�͂������񂢂܂���ˁB IT �֌W�Ɍ���Ȃ���������Ȃ��ł����c�B ���������̂͂�낵���Ȃ��񂶂�Ȃ����ȁA�Ǝv���܂��B �܂��A������I�ɏグ�Ĉ̂����ɂ����Ă���킯�ł����B

-- ���������΁A���̋ƊE�͐S��a�񂾂�Q����������肷��l�������C�����܂��ˁB

�����́A�X�s�[�h����Ȃ��ł����ˁB �v���O�����́A�f�����v�Z�����Ă����̂ŁA�����ɉ�����Ԃ����Ƃ����҂����B ����Ɠ������Ƃ�l�ɂ����҂����Ⴄ��ł��B �l���A���‚̂܂ɂ��@�B�̂悤�Ɉ���������Ă����ł���ˁB �ł��A����͐l�ԂȂ񂾂���A�₢�𑗂��Ă������ɂ͕Ԏ������Ȃ���������Ȃ��B �����ƌ�ɂȂ��Ă͂��߂āA�Ӗ��̂���Ԏ������邩������Ȃ��B ����������Ƃ��Y�ꂪ���Ȃ񂾂Ǝv���܂��B

-- ��؂Ȃ��Ƃł���ˁB���ꂩ������邳��̃T�C�g�⒘��ɂ͂��낢�남���b�ɂȂ�Ǝv���܂����A��낵�����肢���܂��B

���������A�����炱���B

-- ���Z�������A���肪�Ƃ��������܂����B


�{�L���Ŏg�p�����}�G�ɂ‚���

�{�L���Ŏg�p�����Ă����������摜�̈ꗗ�ł��B




©2004 OGIS-RI Co., Ltd.
Prev Index Prev
Prev. Index Next