����ģʽ
����ģʽ��Factory Pattern���� Java ����õ����ģʽ֮һ���������͵����ģʽ���ڴ�����ģʽ�����ṩ��һ�ִ����������ѷ�ʽ��
�ڹ���ģʽ�У������ڴ�������ʱ����Կͻ��˱�¶��������������ͨ��ʹ��һ����ͬ�Ľӿ���ָ���´����Ķ���
����
��ͼ������һ����������Ľӿڣ����������Լ�����ʵ������һ�������࣬����ģʽʹ�䴴�������ӳٵ�������С�
��Ҫ�������Ҫ����ӿ�ѡ������⡣
��ʱʹ�ã�������ȷ�ؼƻ���ͬ�����´�����ͬʵ��ʱ��
��ν������������ʵ�ֹ����ӿڣ����ص�Ҳ��һ������IJ�Ʒ��
�ؼ����룺����������������ִ�С�
Ӧ��ʵ���� 1������Ҫһ������������ֱ�Ӵӹ������������������ȥ��������������ô�������ģ��Լ������������ľ���ʵ�֡� 2��Hibernate �����ݿ�ֻ�軻���Ժ������Ϳ��ԡ�
�ŵ㣺
- 1��һ���������봴��һ������ֻҪ֪�������ƾͿ����ˡ� 2����չ�Ըߣ����������һ����Ʒ��ֻҪ��չһ��������Ϳ��ԡ� 3�����β�Ʒ�ľ���ʵ�֣�������ֻ���IJ�Ʒ�Ľӿڡ�
ȱ�㣺ÿ������һ����Ʒʱ������Ҫ����һ��������Ͷ���ʵ�ֹ�����ʹ��ϵͳ����ĸ����ɱ����ӣ���һ���̶���������ϵͳ�ĸ��Ӷȣ�ͬʱҲ������ϵͳ��������������Ⲣ����ʲô���¡�
ʹ�ó�����
- 1����־��¼������¼���ܼ�¼������Ӳ�̡�ϵͳ�¼���Զ�̷������ȣ��û�����ѡ���¼��־��ʲô�ط���
- 2�����ݿ���ʣ����û���֪�����ϵͳ������һ�����ݿ⣬�Լ����ݿ�����б仯ʱ��
- 3�����һ�����ӷ������Ŀ�ܣ���Ҫ����Э�飬”
POP3“��”IMAP“��”HTTP“��������������Ϊ��Ʒ�࣬��ͬʵ��һ���ӿڡ�
ע�������Ϊһ�ִ�����ģʽ�����κ���Ҫ���ɸ��Ӷ���ĵط���������ʹ�ù�������ģʽ����һ����Ҫע��ĵط����Ǹ��Ӷ����ʺ�ʹ�ù���ģʽ���������ر���ֻ��Ҫͨ�� new �Ϳ�����ɴ����Ķ�������ʹ�ù���ģʽ�����ʹ�ù���ģʽ������Ҫ����һ�������࣬������ϵͳ�ĸ��Ӷȡ�
ʵ��
���ǽ�����һ�� Shape �ӿں�ʵ�� Shape �ӿڵ�ʵ���ࡣ��һ���Ƕ��幤���� ShapeFactory��
FactoryPatternDemo ��ʹ�� ShapeFactory ����ȡ Shape ���������� ShapeFactory ������Ϣ��CIRCLE / RECTANGLE / SQUARE�����Ա��ȡ�������������͡�

���� 1
����һ���ӿ�:
public interface Shape {void draw();}
���� 2
����ʵ�ֽӿڵ�ʵ���ࡣ
public class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("Inside Rectangle::draw() method.");}}
public class Square implements Shape {@Overridepublic void draw() {System.out.println("Inside Square::draw() method.");}}
public class Circle implements Shape {@Overridepublic void draw() {System.out.println("Inside Circle::draw() method.");}}
���� 3
����һ�����������ɻ��ڸ�����Ϣ��ʵ����Ķ���
public class ShapeFactory {//ʹ�� getShape ������ȡ��״���͵Ķ���public Shape getShape(String shapeType){if(shapeType == null){return null;}if(shapeType.equalsIgnoreCase("CIRCLE")){return new Circle();} else if(shapeType.equalsIgnoreCase("RECTANGLE")){return new Rectangle();} else if(shapeType.equalsIgnoreCase("SQUARE")){return new Square();}return null;}}
���� 4
ʹ�øù�����ͨ������������Ϣ����ȡʵ����Ķ���
public class FactoryPatternDemo {public static void main(String[] args) {ShapeFactory shapeFactory = new ShapeFactory();//��ȡ Circle �Ķ����������� draw ����Shape shape1 = shapeFactory.getShape("CIRCLE");//���� Circle �� draw ����shape1.draw();//��ȡ Rectangle �Ķ����������� draw ����Shape shape2 = shapeFactory.getShape("RECTANGLE");//���� Rectangle �� draw ����shape2.draw();//��ȡ Square �Ķ����������� draw ����Shape shape3 = shapeFactory.getShape("SQUARE");//���� Square �� draw ����shape3.draw();}}
���� 5
ִ�г�����������
Inside Circle::draw() method.Inside Rectangle::draw() method.Inside Square::draw() method.
