我和工厂模式的偶遇

敝人久仰设计模式之大名,曾仰望深久,有心学之而不得要领,今日在一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百科“工厂模式”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值