`

设计模式三

 
阅读更多
state工厂有简单工厂模式---->工厂方法模式
package com;

public class StateTest{
	public static void  main(String[] args) {
		Man m = new Man();
		m.request();
		StateFactory sf = new OldStateFactory();
		m.setState(sf.getState());
		m.request();
	}
}

abstract class State{
	private String s;
	abstract public void handle(Man m);
	
	public String getS() {
		return s;
	}
	public void setS(String s) {
		this.s = s;
	}
}

class BabyState extends State{
	public BabyState() {
		// TODO Auto-generated constructor stub
		this.setS("Baby");
	}
	@Override
	public void handle(Man m) {
		// TODO Auto-generated method stub
		System.out.println("i am Baby");
		System.out.println("i will drink milk");
	}
}

class ChildrenState extends State{
	public ChildrenState() {
		// TODO Auto-generated constructor stub
		this.setS("children");
	}

	@Override
	public void handle(Man m) {
		// TODO Auto-generated method stub
		System.out.println("i am children");
		System.out.println("i will go to school");
	}
	
}

class AdultState extends State{
	public AdultState() {
		// TODO Auto-generated constructor stub
		this.setS("adult");
	}
	@Override
	public void handle(Man m) {
		// TODO Auto-generated method stub
		System.out.println("i am adult");
		System.out.println("i will marry");
		System.out.println("i will make out my baby");
	}
	
}

class OldState extends State{
	public OldState() {
		// TODO Auto-generated constructor stub
		this.setS("old");
	}
	@Override
	public void handle(Man m) {
		// TODO Auto-generated method stub
		System.out.println("i am old");
		System.out.println("i will Retirement");
	}
}

class Man{
	private State s;
	public Man() {
		// TODO Auto-generated constructor stub
		this.s = new BabyState(); 
	}
	public void request(){
		s.handle(this);
	}
	
	public void setState(State s){
		this.s = s;
	}
}

interface StateFactory{
	State getState();
}

class BabyStateFactory implements StateFactory{

	@Override
	public State getState() {
		// TODO Auto-generated method stub
		return new BabyState();
	}
	
}

class AdultStateFactory implements StateFactory{

	@Override
	public State getState() {
		// TODO Auto-generated method stub
		return new AdultState();
	}
	
}

class ChildStateFactory implements StateFactory{
	@Override
	public State getState() {
		// TODO Auto-generated method stub
		return new ChildrenState();
	}
}

class OldStateFactory implements StateFactory{
	@Override
	public State getState() {
		// TODO Auto-generated method stub
		return new OldState();
	}
}



分享到:
评论

相关推荐

    设计模式三层结构C#源码

    本资源“设计模式三层结构C#源码”包含了三种经典的设计模式:工厂模式、策略模式和门面模式,以及它们在C#语言中的实现。下面将分别详细介绍这三种设计模式,并结合三层结构的概念进行讨论。 首先,工厂模式是一种...

    23设计模式3

    《23设计模式3》这本书聚焦于面向对象编程领域中的设计模式,这些模式代表了软件设计中的精华经验,旨在提供可复用、高效且清晰的解决方案。设计模式是经过实战检验的最佳实践,可以帮助开发者在遇到常见问题时快速...

    深入浅出设计模式3

    《深入浅出设计模式3》是一本专注于软件开发中设计模式的专著,它延续了前两部作品的精髓,旨在帮助开发者更深入地理解和应用设计模式。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决常见问题的...

    人人都懂设计模式 人人都懂设计模式

    设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中,作者罗伟富通过 Python 实现了 23 种经典设计模式,包括 Singleton 模式、Factory 模式、Observer 模式等。这些模式可以帮助开发者更好地...

    24种设计模式以及混合设计模式

    首先,设计模式分为三大类:创建型、结构型和行为型。创建型设计模式关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory)、抽象工厂模式(Abstract Factory)和建造者模式(Builder)。这些模式提供...

    设计模式之蝉

    设计模式通常被划分为三个主要类别:创建型模式、结构型模式和行为型模式。 《设计模式之蝉》这本书可能是对设计模式的一种形象化描述,或是以蝉为比喻来讲解设计模式的概念。蝉在地下蛰伏多年,最终破土而出,仅...

    设计模式解析.pdf

    ### 设计模式解析:深入理解软件设计的核心原则与实践 #### 标题解析:设计模式解析 设计模式是软件工程领域的重要概念,旨在提供解决常见软件设计问题的模板或指导原则。《设计模式解析》这一标题暗示了书籍将...

    GOF设计模式中英文+设计模式精解中英文

    设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的创建过程,如单例模式、工厂模式、建造者模式等;结构型模式关注如何组合对象和类以构建更复杂的设计,如适配器模式、装饰器模式、...

    Java 经典设计模式讲解以及项目实战

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    23种设计模式详解PDF

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

    Java设计模式 设计模式介绍

    章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之...

    程序员喜欢看的设计模式3saf.rar

    设计模式分为三类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的创建过程,如单例模式、工厂模式、抽象工厂模式等。结构型模式处理对象的组合和聚合,例如适配器模式、桥接模式、装饰器模式等。行为型...

    界面设计模式等UI设计多本合集PDF

    简约至上:交互式设计四策略.pdf 界面设计模式 Designing Interfaces 2nd Edition.pdf 瞬间之美+Web界面设计如何让用户心动.pdf

    研磨设计模式3

    研磨设计模式3

    c++语言实现的23种设计模式.pdf

    文档讲设计模式3大类,创建型模式,结构型模式,行为模式,然后对每一种模式进行详细讲解,以及举例当前模式适合的场景,最重要的是还有各种模式的简单代码实现。我个人最开始接触设计模式也是从改书开始的,以前不...

    设计模式 GOF 23

    1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象接口 9 1.6.4 描述对象...

    软件设计模式大作业

    软件设计模式大作业 本资源为一份完整的软件设计模式大作业,涵盖了六种设计模式的应用,分别是简单工厂模式、工厂方法模式、单例模式、门面模式、策略模式和观察者模式。该大作业的主要内容包括系统流程、系统类图...

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

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

Global site tag (gtag.js) - Google Analytics