日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Java设计模式菜鸟系列(十三)建模和实现状态模式

發(fā)布時(shí)間:2025/6/15 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java设计模式菜鸟系列(十三)建模和实现状态模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/lhy_ycu/article/details/39829859


狀態(tài)模式(State):同意對(duì)象在內(nèi)部狀態(tài)改變時(shí)改變它的行為,對(duì)象看起來(lái)好像改動(dòng)了它的類。狀態(tài)模式說(shuō)白了就是一個(gè)對(duì)象有不同的狀態(tài)。不同的狀態(tài)相應(yīng)不同的行為。它事實(shí)上是對(duì)switch case這種語(yǔ)句的拓展。

一、uml建模:



二、代碼實(shí)現(xiàn)

/*** 演示樣例:狀態(tài)模式-- 一個(gè)對(duì)像有不同的狀 態(tài),不同的狀態(tài)相應(yīng)不同的行為* * 以下四則運(yùn)算為例*/interface State {public double operate(double num1, double num2); }/*** 加法*/ class AddOperator implements State {@Overridepublic double operate(double num1, double num2) {return num1 + num2;} }/*** 減法*/ class SubOperator implements State {@Overridepublic double operate(double num1, double num2) {return num1 - num2;} }/*** 學(xué)生*/ class Student {private State state;public Student(State state) {this.state = state;}/*** 設(shè)置狀態(tài)*/public void setState(State state) {this.state = state;}public double operate(double num1, double num2) {return state.operate(num1, num2);}}/*** client測(cè)試類* * @author Leo*/ public class Test {public static void main(String[] args) {Student s1 = new Student(new AddOperator());System.out.println(s1.operate(12, 23));/*** 改變狀態(tài),即改變了行為 --> 加法運(yùn)算變成了減法運(yùn)算*/s1.setState(new SubOperator());System.out.println(s1.operate(12, 23));} }

三、總結(jié)

封裝基類狀態(tài)的行為,并將行為托付到當(dāng)前狀態(tài)。



版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的Java设计模式菜鸟系列(十三)建模和实现状态模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。