敝人久仰设计模式之大名,曾仰望深久,有心学之而不得要领,今日在一GIS系统中偶见工厂模式踪迹,一路尾随,终见芳容,以为实际之中得见设计模式为有意义之事,并捎带疑难不懂问题,记之。
问题提出:
当实例化一个类时,如果需要做一定得初始化工作,首先想到的是构造方法;其次用一下代码也可以达到目的,称之“工厂模式”。
public static Scope getScope(Point Center,int layer) {
setHeightWidth(layer);
int maxX = Center.getX()+ WIDTH/2;
int maxY = Center.getY()+ HEIGHT/2;
int minX = Center.getX()- WIDTH/2;
int minY = Center.getY()- HEIGHT/2;
Scope scope = new Scope(maxX, maxY, minX, minY);
return scope;
}
在Scope实例化时,需要对其域进行初始化工作,上述代码,使用了工厂模式。
关于“工厂模式”优点:
如果将大段初始化代码放进构造函数,有悖于JAVA面向对象原则。
而采用“工厂模式”将长的代码进行切割,封装,这样将分散风险,以后需要修改,只需要修改每段,不会牵一动百;
在有继承关系的类中,不涉及到父类的具体子类,达到封装效果,也就减少错误修改的机会
红色字体,不得理解,望前辈有缘之人给与解答,谢谢
参考BAIDU百科“工厂模式”