不花钱的网站建设,小米发布会图文,提高审美的网站推荐,免费百度seo引流说明
工厂方法#xff08;Factory Method#xff09;模式是一种工厂模式#xff0c;也叫多态性工厂#xff08;Poloymorphic Factory#xff09;模式。
工厂方法模式涉及如下角色#xff1a;
抽象工厂角色#xff1a;给出具体工厂角色必须实现的接口。具体工厂角色Factory Method模式是一种工厂模式也叫多态性工厂Poloymorphic Factory模式。
工厂方法模式涉及如下角色
抽象工厂角色给出具体工厂角色必须实现的接口。具体工厂角色实现抽象工厂的接口了解创建具体产品的逻辑创建具体的产品。抽象产品角色给出具体产品的共同接口。可以使用标记接口即接口是空的。具体产品角色实现抽象产品的接口。客户端角色调用工厂角色创建具体的产品。
一般来说工厂角色的层级和产品角色的层级是相对应的。先把产品角色的层级规划好再规划工厂角色的层级。
示例
一个简单的示例
定义一个抽象产品这是一个标记接口
package com.thb;public interface Graphic {}定义两个具体产品
package com.thb;public class Circle implements Graphic {}package com.thb;public class Rectangle implements Graphic {}定义一个抽象工厂
package com.thb;public interface Factory {Graphic create();
}因为有两个具体产品所以定义两个具体工厂
package com.thb;public class CircleFactory implements Factory {Overridepublic Graphic create() { return new Circle();}}package com.thb;public class RectangleFactory implements Factory {Overridepublic Graphic create() { return new Rectangle();}}定义一个客户端进行调用
package com.thb;public class Client {private static Graphic circle;private static Graphic rectangle;private static Factory circleFactory;private static Factory rectangleFactory;public static void main(String[] args) {circleFactory new CircleFactory();rectangleFactory new RectangleFactory();circle circleFactory.create();rectangle rectangleFactory.create();}}