`
小鑫的java
  • 浏览: 143094 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

JAVA_工厂和状态设计模式

阅读更多
需要记下
简单工厂模式 生产一个系列产品(英语书,数学书)或多个无关系列产品(水果与书)
//工厂模式
public interface Book {
    public void getType();
}
//数学书
class MathBook implements Book{
    public MathBook(String id){}
    public void getType() {
        System.out.println("Math");        
    }    
}
//英语书
class EngBook implements Book{
    public void getType() {
        System.out.println("Eng");        
    }    
}
public class BookFactory {
    public static Book getBook(int type){
        if(type==1){return new MathBook("12");}
        else {return new EngBook();}
    }
    public static void main(String []args){
        //用方法取代new+构造,当构造发生变化时,只需修改工厂
        Book b=BookFactory.getBook(1);
        b.getType();
    }
}

抽象工厂模式  生产多个相关系列产品
public interface Book {
    public void getType();
}
class MathBook implements Book{
    public void getType() {
        System.out.println("Math");        
    }    
}
class EngBook implements Book{
    public void getType() {
        System.out.println("Eng");        
    }    
}
*******************************
public interface Provider {
    public void test();
}

class MathProvider implements Provider{
    public void test(){
        System.out.println("Math Provider");
    }
}
class EngProvider implements Provider{
    public void test(){
        System.out.println("Eng Provider");
    }
}
*******************************
public interface AbstractFactory {
    public Book getBook();
    public Provider getProvider();
}

class MathFactory implements AbstractFactory{
    public Book getBook(){
        return new MathBook();
    }
    public Provider getProvider(){
        return new MathProvider();
    }
}

class EngFactory implements AbstractFactory{
    public Book getBook(){
        return new EngBook();
    }
    public Provider getProvider(){
        return new EngProvider();
    }
}
*************************************
public class TestFactory {

    public static void main(String[] args) {
        AbstractFactory af=new MathFactory();
        Book b=af.getBook();
        Provider p=af.getProvider();
        b.getType();
        p.test();
    }
}
////////////////////////////////////////////
public interface Color {
    void process();
}
class Red implements Color{
    public void process(){
        
    }
}
class Yellow implements Color{
    public void process(){
        
    }
}
class Green implements Color{
    public void process(){
        
    }
}
*******************
//不采用状态模式
public class GoNoState {
    private Color c;
    public void go(){
        //if(c==red){}
        //else if(c==yellow){}
        //else {}
    }
}
********************
//对象按照状态采取不同的行为,可以采取状态模式
public class Go {
    private Color c;
    public Go(Color c){this.c=c;}
    public void go(){
        c.process();
    }
}

 

分享到:
评论

相关推荐

    基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等

    Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子...

    java 23种设计模式.zip

    设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...

    java常用23中设计模式

    总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    Java代码积累:并发 设计模式 数据结构 使用容器 实用 类 基础知识 并发性 演示线程的生命周期 生产者-消费者 设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者...

    基于Java的设计模式大作业绘图系统【六种设计模式+文档】.zip

    本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...

    java23种设计模式

    java23种设计模式,每一种模式都有详细的讲解,很全面,如果你想深入了解一下java23种设计模式,这会非常适合你的哦!上传乃为百度云连接,失效请留言。 内容: 001策略模式! N. B8 ~' D! f9 j+ g0 I 002观察者模式 ...

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    java设计模式示例

    java设计模式示例 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型...

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

    33种JAVA设计模式DEMO

    这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) 过滤器模式(Filter、Criteria Pattern) 组合模式...

    Java23种设计模式可直接运行Demo

    设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 ...

    Java常用设计模式例子

    以JAVA为例,汇总了十几种常用的设计模式,包括了:单例模式、工厂模式、建造者模式、适配器模式、装饰器模式、外观模式、命令模式、观察者模式、状态模式、策略模式、模板方法模式等。仅供学习使用。 相关文章请看...

    Java设计模式 版本2

    Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...

    《Java设计模式》详解

    内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...

    23种JAVA设计模式和15种J2EE设计模式

    设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 ...

    Java 设计模式

    java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元...

    23种设计模式_Java实现

    java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享...

    [Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

    《java设计模式(第2版)》通过一个完整的java项目对经典著作design patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个...

    设计模式设计题java.docx

    使用java实现各种设计模式应用实例,可做复习考试题。 状态模式 观察者模式 命令模式 适配器模式 三种工厂等等

Global site tag (gtag.js) - Google Analytics