美文网首页
创建型设计模式

创建型设计模式

作者: cp_insist | 来源:发表于2018-10-07 17:51 被阅读0次

一 . 工厂模式

package DesignPattern;

/**
 * Created by YY on 2018/10/7.
 */
public class FactoryPattern {
     public static People getPeople(String name){
         if (name.equals("man")) {
             return new man(name);
         } else if (name.equals("woman")) {
             return new woman(name);
         } else {
             return new unknow(name);
         }
     }

    public static void main(String[] args) {
        People people = FactoryPattern.getPeople("ma");
        people.run();
    }
}
abstract class  People{
    public abstract void run();
}
class woman extends People{
    private String name;
    public woman(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println(this.name +" 正在跑哇");
    }
}
class man extends People{
    private String name;
    public man(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println(this.name +" 正在跑哇");
    }
}
class unknow extends People{
    private String name;
    public unknow(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println("未知性别的"+ this.name +" 正在跑哇");
    }
}
二. 抽象工厂设计模式
package DesignPattern;

/**
 * Created by YY on 2018/10/7.
 */
public class AbstractFactoryPattern {
    public static abstractFactory getFactory(String type){
        if (type.equals("color")) {
            return new colorFactory();
        } else if (type.equals("shape")) {
            return new shapeFactory();
        } else {
            return null;
        }
    }
    public static void main(String[] args) {
        abstractFactory factory = getFactory("shape");
        shape shape = factory.getShape("circle");
        shape.desc();
    }
}
abstract class color{
    public abstract void draw();
}
class red extends color{
    private String color;
    public red(String color) {
        this.color = color;
    }
    @Override
    public void draw() {
        System.out.println(this.color+"颜色的笔很好看");
    }
}
class black extends color{
    private String color;
    public black(String color) {
        this.color = color;
    }
    @Override
    public void draw() {
        System.out.println(this.color+"颜色的笔很好看");
    }
}
abstract class shape {
    public abstract void desc();
}
class circle extends shape{
    private String circle;
    public circle(String circle) {
        this.circle = circle;
    }
    @Override
    public void desc() {
        System.out.println("我的形状是" + circle);
    }
}

class square extends shape{
    private String circle;
    public square(String circle) {
        this.circle = circle;
    }
    @Override
    public void desc() {
        System.out.println("我的形状是" + circle);
    }
}
abstract class abstractFactory{
    public abstract color getColor(String color);
    public abstract shape getShape(String shape);
}
class colorFactory extends abstractFactory{

    @Override
    public color getColor(String colorType) {
       if (colorType.equals("red")) {
           return  new red(colorType);
       } else  if (colorType.equals("black")) {
           return new black(colorType);
       } else {
           return null;
       }
    }

    @Override
    public shape getShape(String shapeType) {
        return null;
    }
}

class shapeFactory extends abstractFactory{

    @Override
    public color getColor(String colorType) {
      return null;
    }

    @Override
    public shape getShape(String shapeType) {
        if (shapeType.equals("circle")) {
            return new circle(shapeType);
        } else if (shapeType.equals("squre")) {
            return new square(shapeType);
        } else {
            return null;
        }
    }
}

相关文章

  • 23种设计模式总结一

    23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。 一、创建型设计模式 创建型设计模式包括:单...

  • 创建型设计模式总结

    创建型设计模式总结 Intro 前面几篇文章已经把创建型设计模式都介绍了,来做一个简单的总结。 创建型设计模式,就...

  • 建造者设计模式-Builder design pattern

    建造者设计模式是创建型设计模式的一种。创建型设计模式处理对象创建的问题。 建造者设计模式,用来构建需要经过若干个建...

  • 设计模式归纳

    一、设计模式的分类 23 种经典的设计模式分为三类:创建型、结构型、行为型。 1.创建型设计模式主要解决“对象的创...

  • 设计模式--分类

    一、设计模式的分类设计模式可以概括为23种,按照特点可以将其分为三大类型:创建型、结构型、行为型。1、创建型创建型...

  • 单例模式

    单例 单例模式,是一种设计模式,属于创建型设计模式,还有一种创建型设计模式,工厂模式。设计模式总共有23种,三大类...

  • 《设计模式之美》- 23种设计模式

    学习《设计模式之美》笔记。 23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型 创建型模式 创建...

  • 设计模式简单总结(待完善)

    设计模式简单总结 设计模式可以分为:创建型,结构型,行为型三种模式。 1 创建型模式 1.1 单例模式 用来指定某...

  • 开发之设计模式-单例模式

    设计模式 设计模式分为三大类:创建型、结构型、行为型在Java中有24中设计模式 创建型:单例 1、为什么用单例模...

  • 设计模式(行为型)-- 观察者模式

    我们常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。创建型设计模式主要解决“对象的创建”问题,结构型...

网友评论

      本文标题:创建型设计模式

      本文链接:https://www.haomeiwen.com/subject/fxalaftx.html