1.2Tinking In Java——多态与设计模式
来源:互联网 发布:截图编辑软件 绿色版 编辑:程序博客网 时间:2024/05/03 12:27
单例设计模式
package com.jingtian.xiaozhi0;public class Test0 {public static void main(String[] args) {A a=A.getA();System.out.println(a);}}//单例设计模式(主要是对private static final的使用)class A {private A() {}private static final A a=new A();public static A getA(){return a;}}
工厂设计模式
package com.jingtian.xiaozhi1;import java.util.*;class Test1 {public static void main(String[] args) {for(int i=0;i<10;i++){A hello=MyUtil.getA();hello.play();}}}//工厂设计模式:上传型型对象————往外产出class MyUtil{public static A getA(){Random r=new Random();int i=r.nextInt(10);if(i/3==1)return new B();else if(i/3==2)return new C();else if(i/3==3)return new D();else return new A();}}//下面是一些继承,比如动物(狗猫)乐器(二胡萧)人(学生老师)class A {public void play(){System.out.println("A play");}}class B extends A{public void play(){System.out.println("B play");}}class C extends A{public void play(){System.out.println("C play");}}class D extends A{public void play(){System.out.println("D play");}}
状态设计模式
package com.jingtian.xiaozhi2;import java.util.*;public class Test2 {public static void main(String[] args) {for(int i=0;i<10;i++){MyUtil myUtil =new MyUtil();myUtil.change();myUtil.perform();}}}//状态模式:(修改引用,改变状态)————在内部修改class MyUtil {public static A a=new A() ;public static void perform(){a.play();}public static void change(){Random r=new Random();int i=r.nextInt(10);if(i/3==1)a=new B();else if(i/3==2)a=new C();else if(i/3==3)a=new D();else a=new A();}}//下面是一些继承,比如动物(狗猫)乐器(二胡萧)人(学生老师)class A {public void play(){System.out.println("A play");}}class B extends A{public void play(){System.out.println("B play");}}class C extends A{public void play(){System.out.println("C play");}}class D extends A{public void play(){System.out.println("D play");}}策略设计模式
package com.jingtian.xiaozhi3;import java.util.*;public class Test3 {public static void main(String[] args) {for (int i = 0; i < 10; i++) {MyUtil2.process(MyUtil1.getA(), "hello pattern!");}//A a=new A();}}// 策略设计模式(对于同一个对象采用不同的状态)————往里送入class MyUtil2 {public static void process(A a, String str) {a.process(str);}}//工厂设计模式:上传型型对象class MyUtil1{public static A getA(){Random r=new Random();int i=r.nextInt(10);if(i/2==1)return new B();else return new C();}}// 下面是一些继承,比如动物(狗猫)乐器(二胡萧)人(学生老师)演员(喜剧演员,悲剧演员)abstract class A {public abstract void process(String str);}class B extends A {public void process(String str) {System.out.println(str.toUpperCase());}}class C extends A {public void process(String str) {System.out.println(str.toLowerCase());}}
- 1.2Tinking In Java——多态与设计模式
- 1.5Tinking In Java——内部类与迭代器
- 1.3Tinking In Java——抽象类接口
- 1.1Tinking In Java——析构函数
- 1.0Tinking In Java——初始化以及垃圾回收
- tinking in java ?
- 1.4Tinking in java--适配器
- Tinking in java 琐碎知识点之反射
- Tinking in Java ---Java的NIO和对象序列化
- Tinking in java 琐碎知识点之集合(容器)
- Tinking in java读书笔记---类数据成员的初始化
- Tinking in java枚举类型的自动贩售机
- tinking java 4练习题
- Tinking in java读书笔记---关于继承和设置jdk的一个小小错误
- Java模式设计之多态模式与多语言支持
- 设计模式(Patterns in Java)
- 设计模式(Patterns in Java)
- 设计模式(Patterns in Java)
- 黑马程序员_数据类型及运算符
- C#多线程和socket的相关知识
- 多年积累的20条编程经验
- 《Automated Software Testing》 2013年 4月 电子杂志下载
- C++继承
- 1.2Tinking In Java——多态与设计模式
- upload.parseRequest(request)为空
- matlab 图像处理命令
- Java各种数据类型详细介绍及其区别
- dpkg: error: dpkg status database is locked by another process
- javascript定义类
- 蓝桥杯地铁换乘问题
- 怎样提高工作效率
- Python操作Oracle数据库