发布网友 发布时间:2023-05-26 03:36
共2个回答
热心网友 时间:2024-03-28 10:48
静态工厂并不是代替构造函数本身,而是代替了构造函数的调用,即替换到了new操作符,好处就是降低了类之间的耦合。假设类A中有 IB b = new B()这样的构造函数调用(其中B是接口IB的实现类),那么我们就称A依赖于B这个具体实现,那么A和B的耦合程度就高,如果B发生了变化,很有可能需要修改所有对B发生依赖的类。而工厂模式的出现就是为减低这种耦合,把对B的依赖从A转加到B的工厂方法里,比如:IB b = BF.getInstance();而BF将返回B的实例,当然这个B的实例也是通过B的构造函数生成的,这种情况下即使B发生了某些变化,我们期望另一个也同样实现IB接口的B‘来代替的时候,我们只需要修改BF这一个地方就可以了。热心网友 时间:2024-03-28 10:49
你就简单明白就行了。一个类必须有构造函数,静态工厂方法就是return一个new本类实例。public ClassA{//构造函数public ClassA(){}pubilc static factroy(){return new ClassA();}}