抽象工厂模式
来源:互联网 发布:福州广电网络集团 编辑:程序博客网 时间:2024/06/05 15:28
package com.henu.factory.abstractfactory;public interface Color {void fill();}package com.henu.factory.abstractfactory;public class Blue implements Color{@Overridepublic void fill() {System.out.println("color id blue");}}package com.henu.factory.abstractfactory;public class Red implements Color{@Overridepublic void fill() {System.out.println("color id red ");}} package com.henu.factory.abstractfactory;public class Green implements Color{@Overridepublic void fill() {System.out.println("color is green");}}package com.henu.factory.abstractfactory;public interface Shape {void draw();}package com.henu.factory.abstractfactory;public class Square implements Shape{@Overridepublic void draw() {System.out.println("this id Square.....");}}package com.henu.factory.abstractfactory;public class Circle implements Shape{@Overridepublic void draw() {System.out.println("this is Circle ");}}package com.henu.factory.abstractfactory;public abstract class AbstractFactory {abstract Color getColor(String color);abstract Shape getShape(String shape);}package com.henu.factory.abstractfactory;public class ColorFactory extends AbstractFactory{@OverrideColor getColor(String color) {if(color==null) return null;if(color.equals("red")) return new Red();if(color.equals("green")) return new Green();if(color.equals("blue")) return new Blue();return null;}@OverrideShape getShape(String shape) {// TODO Auto-generated method stubreturn null;}}package com.henu.factory.abstractfactory;public class ShapeFactory extends AbstractFactory{@OverrideColor getColor(String color) {return null;}@OverrideShape getShape(String shape) {if(shape==null){return null;}if(shape.equals("circle")){return new Circle();}else if(shape.equals("rectangle")){return new Rectangle();}else if(shape.equals("square")){return new Square();}return null;}}package com.henu.factory.abstractfactory;public class FactoryProducer {public static AbstractFactory getFactory(String type){if(type==null) return null;if(type.equalsIgnoreCase("shape")){return new ShapeFactory();}else if(type.equalsIgnoreCase("color")){return new ColorFactory();}return null;}}package com.henu.factory.abstractfactory;public class AbstractFactoryPatternDemo {public static void main(String[] args) {//获取形状的工厂类AbstractFactory shapeFactory = FactoryProducer.getFactory("shape");Shape shape1 = shapeFactory.getShape("circle");shape1.draw();Shape shape2 = shapeFactory.getShape("rectangle");shape2.draw();Shape shape3 = shapeFactory.getShape("square");shape3.draw();AbstractFactory colorFactory = FactoryProducer.getFactory("color");Color color1 = colorFactory.getColor("red");color1.fill();}}
阅读全文
0 0
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- 1217: [HNOI2003]消防局的设立
- linux之信号屏蔽pending
- 1----编程实现100以内两个随机整数的加法运算练习(rand函数)
- 面试中Activity常见的坑你都知道吗?
- 归并排序
- 抽象工厂模式
- UVA12657解题报告
- 【链表复习】链表相关面试题
- JVM系列1-java类的加载机制
- 静态工厂方法
- 算法之排序和极值小结
- 【Leetcode】416-Partition Equal Subset Sum -- javascript解法 01背包问题
- 4种方法让SpringMVC接收多个对象
- 机器学习算法系列--K近邻(KNN)