🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #21380

׷MM�����ģʽ��java��32�����ģʽ��ת��

#21380
From: ���¹۷�
Date: Sun, 30 Nov 2003 09:41
252 lines
26280 bytes
ԭ������csdn
====================================
������ģʽ

1��factory��׷mm�ٲ�����Է��ˣ����͵ļ���Ϳϵ»�ļ��ᶼ��mm���ԵĶ�������
Ȼ��ζ����ͬ�����������mmȥ���ͻ�ϵ»�ֻ�������Ա˵�����ĸ����ᡱ����
�ˡ����ͺͿϵ»���������factory


����ģʽ���ͻ���͹�����ֿ���������κ�ʱ����Ҫij�ֲ�Ʒ��ֻ���򹤳����󼴿ɡ�
����������޸ľͿ��Խ����²�Ʒ��ȱ���ǵ���Ʒ�޸�ʱ��������ҲҪ����Ӧ���޸ġ���
����δ����������ͻ����ṩ��

2��builder��mm���ľ��ǡ��Ұ��㡱��仰�ˣ���ͬ�ط���mm,Ҫ�ܹ������ǵ�
���Ը���˵��仰Ŷ������һ���������Է��������ÿ�����Զ���һ�������mm��
ֻҪ����Ӧ�ļ�����ܹ�����Ӧ������˵�����Ұ��㡱��仰�ˣ������mmҲ��������
��࣬������ҵġ��Ұ��㡱builder������һ�����������������õķ���������

����ģʽ������Ʒ���ڲ�����Ͳ�Ʒ����ɹ�̷ָ�����Ӷ�ʹһ����������ɾ���
��ͬ���ڲ�����IJ�Ʒ���󡣽���ģʽʹ�ò�Ʒ�ڲ�������Զ����ı仯���ͻ�����֪��
��Ʒ�ڲ���ɵ�ϸ�ڡ�����ģʽ����ǿ��ʵ��һ�ֲַ�����еĽ����̡�

3��factory method����mmȥ���ͳԺ�������ͬ��mm�в�ͬ�Ŀ�ζ��Ҫÿ������ס��һ
�����˵����飬��һ�����factory methodģʽ������mm������Ա�Ƕ�˵��Ҫһ������
��������Ҫʲô��ĺ����أ���mmֱ�Ӹ����Ա˵�����ˡ�

��������ģʽ�����Ĺ����಻�ٸ������в�Ʒ�Ĵ��������ǽ����崴���Ĺ�����������ȥ
������Ϊһ�����󹤳���ɫ�������������幤�������ʵ�ֵĽӿڣ���Ӵ���һ����
Ʒ��Ӧ����ʵ������ϸ�ڡ�

4��prototype����mm��qq���죬һ��Ҫ˵Щ����Ļ����ˣ����Ѽ��˺ö�������黰����
ҪʱֻҪcopy�����ŵ�qq��������ˣ�������ҵ��黰prototype�ˡ���100��Ǯһ�ݣ���
Ҫ��Ҫ��

ԭʼģ��ģʽ��ͨ����һ��ԭ�Ͷ�����ָ����Ҫ�����Ķ�������ͣ�Ȼ���ø������ԭ
�Ͷ���ķ������������ͬ���͵Ķ���ԭʼģ��ģʽ���?̬�����ӻ���ٲ�Ʒ�࣬��
Ʒ�಻��Ҫ�ǵ����κ�����ȷ���ĵȼ��ṹ��ԭʼģ��ģʽ�������κεĵȼ��ṹ��ȱ��
��ÿһ���඼�����䱸һ����¡������

5��singleton������6��Ư�������ţ����ǵ��Ϲ������ң��Ҿ������Ǽ�����Ϲ�
sigleton������ֻҪ˵�����Ϲ���������ָ��ͬһ���ˣ��Ǿ�����(�ղ����˸���������
����ô�õ���)

����ģʽ������ģʽȷ��ijһ����ֻ��һ��ʵ���������ʵ�������ϵͳ�ṩ���
ʵ����ģʽ������ģʽֻӦ��������ġ���һʵ�������ʱ�ſ�ʹ�á�

�ṹ��ģʽ

6��adapter�������Ѿۻ���������һ����Ůsarah����������ģ����Ҳ���˵�����
��˵��ͨ����ֻ���������ҵ�����kent�ˣ�����Ϊ�Һ�sarah֮���adapter�����Һ�
sarah�����໥��̸��(Ҳ��֪����᲻��ˣ��)

����������ѹ����ģʽ����һ����Ľӿڱ任�ɿͻ������ڴ����һ�ֽӿڣ��Ӷ�ʹԭ��
��ӿ�ԭ��ƥ����޷�һ�������������ܹ�һ��������������Ը�ݲ���һ��
���ʵ�ʵ���ͻ��ˡ�

7��bridge����������mm��Ҫ˵���Ϻã���������mm��Ҫ˵���Ϻã�����mm���˼����·�
��Ҫ˵����·���Ư��Ŷ������mm�����ķ��ͣ�Ҫ˵���ͷ����Ư��Ŷ����Ҫ���ҡ�����
����mm�����˸�������ô˵���������⣬�Լ���bridge���һ�²�������

����ģʽ����������ʵ�ֻ����ʹ�ö��߿��Զ����ı仯��Ҳ����˵������֮���ǿ
���������������Ҳ����ָ��һ�����ϵͳ�ij��󻯺�ʵ�ֻ�֮��ʹ�����/�ۺϹ�ϵ��
���Ǽ̳й�ϵ���Ӷ�ʹ���߿��Զ����ı仯��

8��composite��mary��������ա����ҹ����գ���Ҫ����һ����������ţ��ðɣ�ȥ��
�꣬���Լ������������t��ͦƯ����������ȹ�Ӻÿ����������Ҳ���?�򡣡���
ι�����������ѽ����ֻ��Ӧ��һ�������Ŷ������ʲôѽ��t����ȹ�ӼӰ�������
��һ��ѽ��С�㣬�鷳���������������������mm������compositeģʽ�ˣ������û��
��

�ϳ�ģʽ���ϳ�ģʽ��������֯�����ṹ�У������������������벿�ֵĹ�ϵ���ϳ�ģʽ
����һ�������������ṹ��ģʽ���ϳ�ģʽ�Ѳ���������Ĺ�ϵ�����ṹ��ʾ��������
��ģʽʹ�ÿͻ��˰�һ���������ijɷֶ���������Ǹ��϶�ɵĺϳɶ���ͬ�ȿ���

9��decorator��mary�����ֵ�sarly�����գ����Dz�Ҫ�����Լ����ˣ���Ȼ����»�ʳ��
�϶����꣬�ó���ȥ���ڻ�ɽ�����յ���Ƭ���ڱ���д�ϡ���õĵ�������ǰ����
fita�����ٵ�������Ʒ�����˸��������Ʒ��mmҲ��Ư��Ŷ�������Ҹ��ڸ�������Ƶ�
mike�����һ��Ư���ĺ���װ�������������Ƕ���decorator�����ն��������������ѽ
����������

װ��ģʽ��װ��ģʽ�ԶԿͻ���͸���ķ�ʽ��չ����Ĺ��ܣ��Ǽ̳й�ϵ��һ�����
���ṩ�ȼ̳и�������ԡ���̬��һ���������ӹ��ܣ���Щ���ܿ����ٶ�̬�ij�����
����һЩ���ܵ�������϶����ķdz������Ĺ��ܡ�

10��facade������һ��רҵ��nikon����Ҿ�ϲ���Լ��ֶ�����Ȧ�����ţ������ճ���
����Ƭ��רҵ����mm�ɲ�����Щ�����˰���Ҳ���ᡣ�Һ������facade���ģʽ�������
�����Զ�����ֻҪ��׼Ŀ�갴���ž����ˣ�һ��������Զ���������mmҲ���������
������������Ƭ�ˡ�

����ģʽ���ⲿ��һ����ϵͳ��ͨ�ű���ͨ��һ��ͳһ�����������С�����ģʽ�ṩһ
���߲�εĽӿڣ�ʹ����ϵͳ������ʹ�á�ÿһ����ϵͳֻ��һ�������࣬���Ҵ�������
ֻ��һ��ʵ��Ҳ����˵����һ������ģʽ�������ϵͳ�����ж�������ࡣ

11��flyweight��ÿ���mm�����ţ���ָ�������ˣ�������˸����ֻ���԰�һЩ����
�ľ��Ӵ����ֻ��Ҫ�õ�ʱ��ֱ���ó�������ǰ�����mm�����־Ϳ��Է����ˣ��ٲ�
��һ����һ�������ˡ�����ľ��Ӿ���flyweight��mm�����־�����ȡ�������ⲿ������
������������ʹ�á�

��Ԫģʽ��flyweight��ȭ��������ָ������������Ԫģʽ�Թ���ķ�ʽ��Ч��֧�ִ���
��ϸ���ȶ�����Ԫģʽ����������Ĺؼ����������״̬������״̬������״̬�洢��
��Ԫ�ڲ��������滷���ĸı������ͬ������״̬���滷���ĸı��ı�ġ�����״̬
����Ӱ������״̬���������໥�����ġ������Թ����״̬�Ͳ����Թ����״̬�ӳ�����
����ֿ������������Թ����״̬�������޳��ȥ���ͻ��˲�����ֱ�Ӵ���������Ķ���
����Ӧ��ʹ��һ�����������𴴽�������Ķ�����Ԫģʽ���ȵĽ����ڴ��ж����
������

12��proxy����mm���������죬һ��ͷ���ǡ�hi,��á�,������Ķ���ѽ������������
��������߶���ѽ������Щ�����淳�ˣ�д��������Ϊ�ҵ�proxy�ɣ����ǽ��յ���Щ��
�����ú����Զ��Ļش𣬽��յ�����Ļ�ʱ��֪ͨ�һش���ô���ɡ�

����ģʽ������ģʽ��ijһ�������ṩһ��������󣬲��ɴ��������ƶ�Դ���������
���������һ���˻�һ��������һ���˻���һ�����ȡ�ж���ijЩ����£��ͻ���
����߲��ܹ�ֱ������һ�����󣬴����������ڿͻ���Ŀ�����ֱ�����н�����á�
�ͻ��˷ֱ治�����������������ʵ������󡣴���ģʽ���Բ���֪������ı��������
�����������һ�����������Ľӿڣ���ʱ���������ܹ�������������󣬱������
�������ϵͳ�������ɫ��Ϊ���������롣

��Ϊģʽ

13��chain of responsibleity������ȥ��Ӣ��Σ�Ϊ�˺ÿ����������һ�ţ��ۣ�ǰ
�����˺ü���Ư����mm��������ֽ����д�ϡ�hi,�������ҵ�Ů���������Ը������
ǰ������ֽ����һ����һ���Ĵ���ȥ�ˣ���⣬������һ�ŵ�mm��ֽ��������ʦ�ˣ���˵
�Ǹ��ϴ�Ůѽ������!

������ģʽ����������ģʽ�У��ܶ������ÿһ����������¼ҵ����ö��

�����γ�һ������������������ϴ��ݣ�ֱ�����ϵ�ijһ�����������������󡣿ͻ���
��֪�����ϵ���һ���������մ����������ϵͳ�����ڲ�Ӱ��ͻ��˵�����¶�̬����
����֯���ͷ������Ρ�������������ѡ�񣺳е����λ��߰������Ƹ��¼ҡ�һ���������
���ղ����κν��ն˶�������ܡ�

14��command������һ��mm����ܵ��ر��ϣ�û�����棬ֻ�ý�������ܵ���������֮��
������Ϣ���������ʲôָʾ����дһ��ֽ������ܴܵ���ҡ��ⲻ����ܵ��ִ��͹���
һ��command��Ϊ�˸�л��������������ӽ��棬��֪����˵������ͬʱ���ҽ�����
��������command����������С������ҳ��档����:-(

����ģʽ������ģʽ��һ��������߲�����װ��һ�������С�����ģʽ�ѷ������������
��ִ����������ηָ��ί�ɸ�ͬ�Ķ�������ģʽ���������һ���ͷ��͵�һ����
��������ʹ�������һ������֪�����������һ���Ľӿڣ����֪����������ô������
���Լ������Ƿ�ִ�У���ʱ��ִ���Լ�����ô��ִ�еġ�ϵͳ֧������ij���

15��interpreter������һ������mm�澭���������и�����mm�Ĺ��ԣ�����˵ȥ�����͵�
���衢ȥ����Ӱ�ķ����ȵȣ���mmԼ��ʱ��ֻҪ��һ��interpreter����������Ľű�ִ
�оͿ����ˡ�

������ģʽ����һ�����Ժ󣬽�����ģʽ���Զ�������ķ���һ�ֱ�ʾ����ͬʱ�ṩһ
�����������ͻ��˿���ʹ�������������������������еľ��ӡ�������ģʽ����������
������һ���򵥵��ķ���ʹ��ģʽ��ƽ�����Щ��䡣�ڽ�����ģʽ�����ᵽ��������
ָ�κν����������ܹ����͵��κ���ϡ��ڽ�����ģʽ����Ҫ����һ������ķ���������
�ĵȼ��ṹ��Ҳ����һϵ�е���Ϲ���ÿһ�����������һ�����ͷ�������������
����Ľ��͡��������ĵȼ��ṹ�еĶ�����κ�������϶���һ�����ԡ�



16��iterator���Ұ�����mary������һ�е�������顣

mary������Ҫ�Ҹ����飬�ô�Ӧ�ҵ�������

�ң���ʲô�����Ҷ���Ӧ����˵�ɡ�

mary�����ҿ������Ǹ�һ��������ʯ��

�ң����������򣬻����𣿡�

mary�����ҿ����˺��ߵ��Ƕ�����

�ң����������򣬻����𣿡�

mary�������С�ܱܵ���Ҫ��50cm����

���Դ��˵�һ�����������ϣ�һҧ�������Ҽ����Ҽ��������𣿡�

����

�����ģʽ�������ģʽ����˳�����һ���ۼ��е�Ԫ�ض�ر�¶�ۼ����ڲ����󡣶�
���������һ���γɵ������֮Ϊ�ۼ����ۼ��������ܹ�����һ�������������󡣵��
��ģʽ������߼���װ��һ���������Ӷ����У��Ӷ���ۼ���������������ģʽ����
�ۼ��Ľ��档ÿһ���ۼ����󶼿�����һ����һ�����ϵĵ���Ӷ���ÿһ������ӵĵ�
��״̬�����DZ˴˶����ġ�����㷨���Զ����ھۼ���ɫ�仯��

17��mediator���ĸ�mm���齫���໥֮��˭Ӧ�ø�˭����Ǯ�㲻����ˣ��ҿ���ʱ������
�ߣ����ո��Եij�������Ǯ��׬��Ǯ�Ĵ��������ã�����Ǯ��Ҳ�����ң�һ�о�ok������
�õ����ĸ�mm�ĵ绰��

��ͣ��ģʽ����ͣ��ģʽ��װ��һϵ�ж����໥���õķ�ʽ��ʹ����Щ���󲻱��໥����
���á��Ӷ�ʹ���ǿ�����ɢż�ϡ���ijЩ����֮������÷���ı�ʱ����������Ӱ������
��һЩ����֮������á���֤��Щ���ÿ��Ա˴˶����ı仯����ͣ��ģʽ����Զ���໥
����ת��Ϊһ�Զ���໥���á���ͣ��ģʽ���������Ϊ��Э�����󻯣��Ѷ�����С�߶�
����Ϊ�������������໥���÷ֿ����?

18��memento��ͬʱ���mm����ʱ��һ��Ҫ������ղŸ�mm˵��Щʲô������Ȼmm����
�˻᲻���˵�Ŷ���ҿ����и�����¼���ղ����ĸ�mm˵��ʲô���Ҷ�����һ�ݷŵ�����¼
���汣�棬���������ʱ�쿴��ǰ�ļ�¼����

����¼ģʽ������¼������һ�������洢����һ�������ڲ�״̬�Ŀ��յĶ��󡣱���¼ģ
ʽ���������ڲ��ƻ���װ�������£���һ�������״̬׽ס�����ⲿ�����洢�������Ӷ�
�����ڽ������ʵ�ʱ����������ԭ���洢������״̬��

19��observer����֪�����ǹ�˾����mm�鱨�𣿼��빫˾��mm�鱨�ʼ�������ˣ�tom��
���Ѽ��鱨�����ֵ����鱨����һ��һ��֪ͨ���ǣ�ֱ�ӷ������ʼ��飬������Ϊ����
�ߣ��۲��ߣ��Ϳ��Լ�ʱ�յ��鱨��

�۲���ģʽ���۲���ģʽ������һ��һ�Ӷ��������ϵ���ö���۲��߶���ͬʱ����ijһ
���������������������״̬�Ϸ���仯ʱ����֪ͨ���й۲��߶���ʹ�����ܹ���
�������Լ���

20��state����mm����ʱ��һ��Ҫע�����״̬Ŷ���ڲ�ͬ��״̬ʱ�����Ϊ���в�ͬ��
������Լ���������ȥ����Ӱ������û��Ȥ��mm�ͻ�˵�����������������㲻���ᵫ��û
ϲ���ϵ�mm�ͻ�˵���ð���������Դ�����ͬ��ô�������Ѿ�ϲ�������mm�ͻ�˵������
�ӣ������Ӱ��ȥ�ݰ���ô������Ȼ�㿴��Ӱ����б������õĻ���Ҳ���԰�mm��״
̬�Ӳ����᲻ϲ�����ϲ��Ŷ��

״̬ģʽ��״̬ģʽ����һ�����������ڲ�״̬�ı��ʱ��ı���Ϊ�����������ȥ��
�Ǹı��������һ��״̬ģʽ�����о��Ķ������Ϊ��װ�ڲ�ͬ��״̬�����ÿһ��
״̬��������һ������״̬���һ�����ࡣ״̬ģʽ����ͼ����һ�����������ڲ�״̬
�ı��ʱ������ΪҲ��֮�ı䡣״̬ģʽ��Ҫ��ÿһ��ϵͳ����ȡ�õ�״̬����һ��״
̬������ࡣ��ϵͳ��״̬�仯ʱ��ϵͳ��ı���ѡ�����ࡣ

21��strategy����ͬ���͵�mmԼ�ᣬҪ�ò�ͬ�IJ��ԣ��е����Ӱ�ȽϺã��е���ȥ��
С��Ч��?�е�ȥ������������ʣ���Ŀ�Ķ���Ϊ�˵õ�mm�ķ��ģ��ҵ�׷mm������
�кö�strategyŶ��

����ģʽ������ģʽ���һ���㷨����ÿһ���㷨��װ�����й�ͬ�ӿڵĶ��������У���
��ʹ�����ǿ����໥�滻������ģʽʹ���㷨�����ڲ�Ӱ�쵽�ͻ��˵�����·���仯��
����ģʽ����Ϊ�ͻ����ֿ��������ฺ��ά�ֺͲ�ѯ��Ϊ�࣬�����㷨�ھ���IJ�������
�ṩ�������㷨�ͻ��������������㷨���������޸Ķ�����Ӱ�쵽�����Ϳͻ��ˡ�

22��template method�����������˵��Ů���ϴ����ⲿ����������Ů�����ʶ����
���IJ���IJ����Ϊ���������ƽ��֡�չ��׷�󡢽��ǡ�ǰϷ�����֡���������ȥ�˴�
��(template method)����ÿ��������Բ�ͬ����������в�һ������������Ҫ������
��Ӧ����(����ʵ��)��

ģ�巽��ģʽ��ģ�巽��ģʽ׼��һ�������࣬�������߼��Ծ��巽���Լ����幹���ӵ�
��ʽʵ�֣�Ȼ������һЩ���󷽷�����ʹ����ʵ��ʣ����߼�����ͬ����������Բ�ͬ��
��ʽʵ����Щ���󷽷����Ӷ��ʣ����߼��в�ͬ��ʵ�֡����ƶ�һ�������߼���ܣ���
���߼���ϸ��������������ȥʵ�֡�

23��visitor�����˽ڵ��ˣ�Ҫ��ÿ��mm��һ���ʻ���һ�ſ�Ƭ������ÿ��mm�͵Ļ���Ҫ
�������˵��ص㣬ÿ�ſ�ƬҲҪ��ݸ��˵��ص���������һ�����ĸ������������һ�
���ϰ����Ʒ���ϰ���һ��visitor���û����ϰ���mm���ص�ѡһ������Ʒ���ϰ�
Ҳ���ÿ�����ص�ѡһ�ſ�����������ɶ��ˣ�

������ģʽ��������ģʽ��Ŀ���Ƿ�װһЩʩ����ij����ݽṹԪ��֮�ϵIJ�����һ����
Щ������Ҫ�޸ĵĻ������������������ݽṹ���Ա��ֲ��䡣������ģʽ��������ݽ�
�����δ����ϵͳ�������ݽṹ�������ڽṹ�ϵIJ���֮�����Ͻ��ѿ���ʹ�ò�����
�Ͽ���������ɵ��ݻ���������ģʽʹ�������µIJ�����ĺ����ף���������һ���µķ�
�����ࡣ������ģʽ���йص���Ϊ���е�һ�������߶����У����Ƿ�ɢ��һ�����Ľڵ�
���С���ʹ�÷�����ģʽʱ��Ҫ�������ܶ�Ķ�������߼����ڷ��������У����Ƿŵ�
��������С�������ģʽ���Կ�����ĵȼ��ṹ�������ڲ�ͬ�ĵȼ��ṹ�ij�Ա�ࡣ

--
�� ��Դ:������δ��վ bbs.pku.edu.cn��[FROM: 61.149.149.92]
Technical Details
Message-ID: <49Sg3Z$9qV@bbs.pku.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.media.kyoto-u.ac.jp!news.neu.edu.cn!news.happynet.org!PKU

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f6cb0,f20facdcf99b40e8,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-11-30 01:42:20 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.media.kyoto-u.ac.jp!news.neu.edu.cn!news.happynet.org!PKU
From: haowei@bbs.pku.edu.cn (���¹۷�)
Newsgroups: cn.bbs.comp.lang.java
Subject: ׷MM�����ģʽ��java��32�����ģʽ��ת��
Date: 30 Nov 2003 09:41:25 GMT
Organization: ����δ��վ
Message-ID: <49Sg3Z$9qV@bbs.pku.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: Java/M.1070185139.A
Lines: 252