�@ �@

�A��
.NET�Ŏn�߂�f�U�C���p�^�[��

��2�� ���܂��f�U�C���p�^�[�����g�����߂̐S��

���z�V�X�e��������Ё@���� �f��
2005/02/02
Page1 Page2

�f�U�C���p�^�[���K���ɕK�v�ȃI�u�W�F�N�g�w���݌v�̊�{

�@�u�f�U�C���p�^�[���͋��ȏ�������ǂ�Ŋw�Ԃ��̂ł͂Ȃ��B���H��ʂ��ė�������K�v������v

�@�f�U�C���p�^�[�����K������ł��ǂ����@�́A���ۂɎg���Ă݂邱�Ƃł���B���H��ʂ��Ċw�΂Ȃ���΁A�����Đg�ɕt���Ȃ����낤�B�������A�f�U�C���p�^�[���͈�ʓI�ɃI�u�W�F�N�g�w���݌v�ɓ��������p�^�[���ł���A��݂����Ɏg���Ă݂��Ƃ���ŗ������������p�^�[��������B�܂��̓I�u�W�F�N�g�w���݌v�̊�{�𗝉����A�e�f�U�C���p�^�[�����ǂ̂悤�ɗǂ��݌v�Ȃ̂��𔻒f�ł���悤�ɂȂ��Ă����ׂ����B

���I�u�W�F�N�g�ւ̐ӔC���蓖�Ă̊�{�����uGRASP�p�^�[���v

�@�u�I�u�W�F�N�g�w���݌v�̊�{�Ƃ́A�K�؂ȃN���X�ɓK�؂ȐӔC�����蓖�Ă邱�Ƃł���v

�@�����ł����ӔC�Ƃ́A�N���X�����炩�̏��������s����ӔC�i���s�ӔC�j�ƁA�N���X��������c������ӔC�i���c���ӔC�j�̂��Ƃł���B

�@�ł́A�ǂ̂悤�ȕ��j�Ɋ�Â��ĐӔC�����蓖�Ă�΂悢�̂ł��낤���B�����m��ɂ́A�I�u�W�F�N�g�݌v����ѐӔC���蓖�Ă̊�{�������p�^�[���̌`���ŋL�q�����uGRASP�p�^�[���v���ǂ��w�j�ƂȂ�B

�@GRASP�p�^�[���́A�N���[�O�E���[�}�����ɂ�鏑�Ёw���HUML�\�\�p�^�[���ɂ�铝��v���Z�X�K�C�h�x�i�ȍ~�A���Ёw���HUML�x�j�̒��ŁA�ȉ��̂悤�ɐ�������Ă���B

GRASP�́AGeneral�i�ėp�jResponsibility�i�ӔC�jAssignment�i���蓖�ājSoftware�i�\�t�g�E�F�A�jPatterns�i�p�^�[���j��\��������ł��B�I�u�W�F�N�g�w���\�t�g�E�F�A�̐݌v�𐬌��ɓ����ɂ͂����̌����́u�����v�igrasping�j���d�v�ł��邱�Ƃ�\�����߂ɁA���� GRASP �Ƃ������O���I�΂�܂����B

�@GRASP�p�^�[���Ɋ܂܂�Ă���e�p�^�[���́A�ȉ��Ɏ����Ă���悤�ɁA���ꂼ�ꂪ�V���v���Ȍ����΂���ŁA�n�������I�u�W�F�N�g�w���J���҂ł���΁A���̖��O�͒m��Ȃ������Ƃ��Ă��A��{�����Ƃ��Ė��ӎ��̂����ɓK�p���Ă�����̂΂��肾�낤�B

�@�uGoF�̃f�U�C���p�^�[���v�̑������AGRASP�p�^�[���Ɋ܂܂�Ă���u�������p�^�[���v�u�Ԑډ��p�^�[���v�u�����ˋ󕨃p�^�[���v�u�o���G�[�V�����h��p�^�[���v�ȂǂɊ�Â��Ă���B�O���̋L���ŏЉ��State�p�^�[���̏�ԃI�u�W�F�N�g�́u�����ˋ󕨃p�^�[���v�Ɋ�Â����֋X��̃N���X�ł���A���̐U�镑���̕ω��́u�������p�^�[���v�Ɋ�Â��Ă���B���̗Ⴉ���������悤�ɁAGRASP�p�^�[���̓f�U�C���p�^�[���̃r���f�B���O�E�u���b�N�ƂȂ鑶�݂Ȃ̂ł���B

�@����GRASP�p�^�[���̊�{�����ɖڐV�������o����悤�ł���΁A�f�U�C���p�^�[�����w�K����O�ɁAGRASP�p�^�[���𗝉����邱�Ƃ���n�߂Ă��炢�����B�ȉ��ɏ��Ёw���HUML�x�ɋL�ڂ���Ă���9�‚�GRASP�p�^�[�����Љ��B

�p�^�[���� ��� ������
���G�L�X�p�[�g�iInformation Expert�j �N���X�̐ӔC���蓖�ĂɊւ���ł���ʓI�Ȍ����͉��� �ӔC�𐋍s���邽�߂ɕK�v�ȏ���ێ����Ă���N���X�ɑ΂��ĐӔC�����蓖�Ă�
�����ҁiCreator�j �N���X�̃C���X�^���X�𐶐�����ӔC�́A�ǂ̂悤�ȃN���X�Ɋ��蓖�Ă�ׂ��� �E��������N���X���W�񂷂�A�܂��͕�܂���N���X�ɑ΂��ĐӔC�����蓖�Ă�
�E��������N���X�𒼐ړI�Ɏg�p����N���X�ɑ΂��ĐӔC�����蓖�Ă�
�E��������N���X�����������邽�߂ɕK�v�ȏ��������Ă���N���X�ɑ΂��ĐӔC�����蓖�Ă�
���ÏW���iHigh Cohesion�j ���G�����y�����A�R���g���[�����₷�����邽�߂ɂ́A�ǂ̂悤�ɂ���΂悢�� �ÏW�x�i�N���X�Ɋ܂܂��@�\���̂܂Ƃ܂�j�������Ȃ�悤�ɐӔC��z�u����i�ÏW�x�ɂ‚��ďڂ����͌�q����j
�a�������iLow Coupling�j �N���X�Ԃ̈ˑ�����Ⴍ���A�ύX�e�Ր������コ���邽�߂ɂ́A�ǂ̂悤�ɂ���΂悢�� �����x�i�ق��̃N���X�Ƃ̌��ѕt���̋����j���Ⴍ�Ȃ�悤�ɐӔC��z�u����i�����x�ɂ‚��ďڂ����͌�q����j
�R���g���[���iController�j �V�X�e���E�C�x���g����������ӔC�́A�ǂ̂悤�ȃN���X�Ɋ��蓖�Ă�ׂ��� �V�X�e���E�C�x���g�E���b�Z�[�W���󂯎�����菈�������肷��ӔC�́A�R���g���[���E�N���X�Ɋ��蓖�Ă�B�R���g���[���E�N���X�̌��Ƃ��āA�V�X�e���S�̂܂��̓T�u�V�X�e����\������N���X�A�V�X�e���E�C�x���g���쓮���郆�[�X�P�[�X��\������N���X�Ȃǂ�����
�������iPolymorphism�j �I�u�W�F�N�g�̐U�镑�����^�i�N���X�j�ɂ���ĕω�����悤�ȏꍇ�́A�ǂ̂悤�ɂ���΂悢���B�܂��A�V���ȐU�镑����e�Ղɒlj��ł���悤�ɂ���ɂ́A�ǂ̂悤�ɂ���΂悢�� �I������U�镑�����N���X�ɂ���ĕω�����ꍇ�́A�����̃N���X�ɑ΂��ă|�����[�t�B�b�N�ȑ�����s���A�N���X���ƂɈقȂ�U�镑���̂��߂̐ӔC�����蓖�Ă�
�Ԑډ��iIndirection�j �N���X���m�����ړI�Ɍ������Ȃ��悤�ɂ���ɂ́A�ǂ̂悤�ȃN���X�ɐӔC�����蓖�Ă�΂悢���B�܂��A�N���X���m�����ړI�Ɍ������Ȃ��悤�ɃN���X�������s���ɂ́A�ǂ̂悤�ɂ���΂悢�� 2�ˆȏ�̃N���X�𒇉��悤�ȊԐړI�ȃN���X�𓱓����A���̃N���X�ɑ΂��ĐӔC�����蓖�Ă�
�����ˋ󕨁iPure Fabrication�j �ÏW�x�������A�����x��Ⴍ���������A���G�L�X�p�[�g�E�p�^�[���Ɋ�Â��Ė��̈���̃N���X�ɐӔC�����蓖�Ă邱�Ƃ��s�K�؂ȏꍇ�́A�ǂ̂悤�ȃN���X�ɐӔC�����蓖�Ă�΂悢�� ���̈�̊T�O�ɂ͊܂܂�Ȃ��l�H�I�ȕ֋X��̃N���X��p�ӂ��A���̃N���X�ɑ΂��Č��肳�ꂽ�^�X�N�����s���邽�߂̐ӔC�����蓖�Ă�
�o���G�[�V�����h��iProtected Variations�j �V�X�e���A�T�u�V�X�e���A�I�u�W�F�N�g�Ȃǂ̗v�f�ɂ�����s����ӏ���o���G�[�V�����̉e�����A�ق��̗v�f�Ɉ��e�����y�ڂ��Ȃ��悤�ɂ���ɂ́A�ǂ̂悤�ɂ���΂悢�� ���肵�Ă�����ƁA�s����Ȍ��܂��̓o���G�[�V�����̐ړ_�����‚��āA���̐ړ_�̎��ӂɈ��肵���C���^�[�t�F�C�X���쐬�����悤�ɂ���B�����ł̃C���^�[�t�F�C�X�͍L���Ӗ��ł̃C���^�[�t�F�C�X���w���A����̌��ꂪ�p�ӂ���^�Ƃ��ẴC���^�[�t�F�C�X�������w�����̂ł͂Ȃ�
9�‚�GRASP�p�^�[��

���ÏW�x�ƌ����x

�@GRASP�p�^�[���̊j�ƂȂ�T�O�́A�ÏW�x�iCohesion�j�ƌ����x�iCoupling�j�ł���B�I�u�W�F�N�g�w���̗D�ꂽ�݌v�́A�u�ÏW�x�������A�����x���Ⴂ�v�ƕ\������邱�Ƃ������B

�@�ÏW�x�Ƃ́A�X�̕��i���̋@�\�I�Ȍ��ѕt���̎ړx�ł���B�Ⴆ��1�‚̕��i���A�݂��Ɋ֘A�̂���@�\�����ō\������Ă���΁A�ÏW�x�������Ȃ�A���i�����–�����Ӑ}�����m�ɂȂ�B�t�Ɋ֘A�̂Ȃ��@�\�̊񂹏W�߂ŕ��i���\������Ă���΁A�������ɂ����A�v���̕ύX�ɂ��Ώ����Â炢���̂ƂȂ�B

�@�����x�Ƃ́A�X�̕��i�Ԃł̌��ѕt���̎ړx�ł���B�����ł̌��ѕt���Ƃ́A���i�Ԃ̕����I�A�Ӗ��I�Ȋ֘A�̂��Ƃł���B�Ⴆ��2�‚̕��i�������֘A�������Ă���ƁA�����x�͍����Ȃ�A�Е���ύX����΂��̉e���������ɂ��y�сA������ύX����������Ȃ��Ȃ�B�����ŁA�\�t�g�E�F�A���\�����镔�i�́A�݂��ɒႢ�����x�Ŋ֘A�������Ă��邱�Ƃ��]�܂����Ƃ����̂ł���B

�@�ÏW�x�ƌ����x�́A���V �͎��ɂ�鏑�Ёw�I�u�W�F�N�g�w���łȂ��‚���̂��x�̒��ŁA�ȉ��̂悤�Ɏ��ɕ�����₷����������Ă���B

���������\��������Ȃ�A�X�̕��i�̂܂Ƃ܂�́u�M���b�v�Ƌ������A���i�ƕ��i�̊Ԃ̂��Ƃ�́u�A�b�T���v�Ǝキ����A�ƌ�����ł��傤�B�悻�҂͔r�����Đg���̌������ł߁A�ߏ��Â������͂ł�����菭�Ȃ�����C���[�W�Ɗo���Ă�������������܂���B

�@GRASP�p�^�[���ł́A�����̊T�O���u���ÏW���iHigh Cohesion�j�p�^�[���v����сu�a�������iLow Coupling�j�p�^�[���v�Ƃ��āA����������Ă���B����2�‚̃p�^�[���͂ق���GRASP�p�^�[���̍���ɂ��Ȃ��Ă���B�Ⴆ�΁u���G�L�X�p�[�g�E�p�^�[���v�Ɋ�Â��Đ݌v���ꂽ�N���X�Q�́A���ꂼ��̃N���X�ɕK�v�ȏ�񂪏W�񂳂��̂ŁA�u���ÏW���v���x�������B�܂��A�I�u�W�F�N�g�����g�̏��݂̂��g�p����΂悢�̂ŁA�ق��̃I�u�W�F�N�g�Ƃ̊֘A�����Ⴍ�Ȃ�A�u�a�������v���x�������B

�@GRASP�p�^�[�����w�j�Ƃ���ꍇ�̒��ӓ_�������Ă������B�N���X�ɐӔC�����蓖�Ă�ꍇ�ɂ́AGRASP�p�^�[���̊e�p�^�[����P�̂Ŏw�j�Ƃ���̂ł͂Ȃ��A�����̎��_����l������K�v������B�Ȃ��Ȃ�AGRASP�p�^�[���̊e�p�^�[���́A�I�u�W�F�N�g�w���݌v�]���p�̃p�^�[���ł���A�ق��̃p�^�[���ƕ��p���ĕ]�����ׂ����̂ł��邽�߂��B�‚܂�A1�‚̃p�^�[���̏����𖞂����Ă����Ƃ��Ă��A�ق��̃p�^�[���̏����𖞂����Ă��Ȃ��Ƃ����ꍇ���N���蓾��̂ł���B

�@�Ⴆ�΁A�G���e�B�e�B�E�N���X���f�[�^�x�[�X�ɉi��������K�v������ꍇ�ɁA�u���G�L�X�p�[�g�E�p�^�[���v�ɂ̂݊�Â��΁A�G���e�B�e�B�E�N���X�ɒ��ڃf�[�^�A�N�Z�X�E���W�b�N���L�q���Ă��܂����ƂɂȂ邾�낤�B���̂悤�ȏꍇ�ɂ́A�u���ÏW���p�^�[���v��u�a�������p�^�[���v�̏����𖞂����‚u�����ˋ󕨃p�^�[���v�̓K�p���l���邱�ƂŁA�r�W�l�X�E���W�b�N�ƃf�[�^�A�N�Z�X�E���W�b�N���������ꂽ�A�ǂ��݌v�ւƓ������Ƃ��ł���̂ł���i�G���e�B�e�B�E�N���X��r�W�l�X�E���W�b�N�A�f�[�^�A�N�Z�X�E���W�b�N�Ȃǂ̕����ɂ‚��ẮA�u�A�ځF�A�v���P�[�V�����E�A�[�L�e�N�`���݌v�����v���Q�l�ɂȂ�j�B

��

�@����́A�f�U�C���p�^�[���Ƃ͂ǂ̂悤�Ȃ��̂��Ƃ����l�@�ƁA�f�U�C���p�^�[�����K�����邽�߂ɕK�v�ȃI�u�W�F�N�g�w���݌v�̊�{�ƂȂ�ӔC�̊��蓖�ĂƁA�����]������p�^�[���Ƃ��Ă�GRASP�p�^�[�����Љ���B

�@���񂩂�́A���t�@�N�^�����O����f�U�C���p�^�[���𓱂����@���A��̓I�ȃR�[�h�𒆐S�ɐ������Ă����\�肾�BEnd of Article


�@INDEX
�@ .NET�Ŏn�߂�f�U�C���p�^�[��
�@ ��2�� ���܂��f�U�C���p�^�[�����g�����߂̐S��
�@   1�D�f�U�C���p�^�[���Ƃ͉���
  2�D�f�U�C���p�^�[���K���ɕK�v�ȃI�u�W�F�N�g�w���݌v�̊�{
�@
CfbNXEy[Ww �@�u.NET�Ŏn�߂�f�U�C���p�^�[���v


Insider.NET �t�H�[���� �V���L��
  • ��2��@�Ȍ��ȃR�[�f�B���O�̂��߂� �i2017/7/26�j
    �@�����_���ŋL�q�ł��郁���o�̑����Athrow���Aout�ϐ��A�^�v���ȂǁAC# 7�ɂ͈ȑO�����R�[�h���Ȍ��ɋL�q�ł���悤�ȋ@�\����������Ă���
  • ��1��@Visual Studio Code�f�o�b�O�̊�b�m�� �i2017/7/21�j
    �@Node.js�v���O�������f�o�b�O���Ȃ���AVisual Studio Code�ɓ�������Ă���f�o�b�O�@�\�̊�{�́u�L�v���}�X�^�[���悤
  • ��1��@���ĂȃR�[�f�B���O�̂��߂� �i2017/7/19�j
    �@C# 7�Œlj����ꂽ�V�@�\�̒�����A�u���l���e�����\���̉��P�v�Ɓu���[�J���֐��v���Љ��B�����͕�����₷���R�[�h���L�q����̂Ɏg����
  • Presentation Translator �i2017/7/18�j
    �@Presentation Translator��PowerPoint�p�̃A�h�C���B�v���[���e�[�V�������̎����̕t����A������ł̎��^�����A�X���C�h�̖|����s����
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

Insider.NET �L�������L���O

�{�� ����