java30:设计模式
2016-02-02 17:51
387 查看
设计模式:
模式化的解决方案
三类
创见型模式:
单例模式,工厂模式
结构型模式:
装饰模式,代理模式
静态代理,动态代理
行为型模式:
模板模式,迭代器模式
单例模式:
又名单实例模式
使用这个模式设计的类,全局应保证只有一个实例,不管什么时候都只有一个实例
1・私有化构造方法
2・提供一个共有的静态的可以获取当前类型实例的方法
3・定义一个私有的静态的当前类型的实例,给步骤2的方法返回
模板模式:
定义一个操作中的算法过程的骨架,而将部分细节操作延迟到子类去实现
本文出自 “浪漫的偷笑” 博客,转载请与作者联系!
模式化的解决方案
三类
创见型模式:
单例模式,工厂模式
结构型模式:
装饰模式,代理模式
静态代理,动态代理
行为型模式:
模板模式,迭代器模式
单例模式:
又名单实例模式
使用这个模式设计的类,全局应保证只有一个实例,不管什么时候都只有一个实例
package day30; /** * * 单例模式->当前类的实例,全局唯一 */ public class Box { private int width; private int height; private static Box box = new Box();//定义一个私有的当前类型的属性 private Box(){//私有的构造方法,外接就不能通过new 来创建实例了 } public static Box getBox(){//定义一个公用的静态方法,用于获取当前类型的,静态方法需要使用static属性 return box; } public int getWith(){ return width; } public int getHeight(){ return height; } public void setWith(int width){ this.width = width; } public void setHeight(int height){ this.height =height; } } package day30; public class TestBox { public static void main(String[] args){ Box b1 = Box.getBox(); b1.setHeight(2); Box b2 = Box.getBox(); System.out.println(b1 == b2); System.out.println(b2.getHeight()); } }单例模式的实现步骤:
1・私有化构造方法
2・提供一个共有的静态的可以获取当前类型实例的方法
3・定义一个私有的静态的当前类型的实例,给步骤2的方法返回
模板模式:
定义一个操作中的算法过程的骨架,而将部分细节操作延迟到子类去实现
package day30; public abstract class Person {//抽象类,对于模板大多是抽象的 public void sayHello(){//介绍自己 System.out.println("大家好"); System.out.println("我叫"+getName()); System.out.println(getInfo()); System.out.println(sayGoodBye()); } public abstract String getName(); public abstract String getInfo(); public abstract String sayGoodBye(); } package day30; public class Student extends Person{ public String getInfo(){ return "个人基本情况、教育背景、学习经历、外语和计算机应用水平、工作经验、个人成果获奖情况、能力和专长"; } public String getName(){ return "lmdtx"; } public String sayGoodBye(){ return "88"; } } package day30; public class Teacher extends Person{ public String getInfo(){ return null; } public String getName(){ return ""; } public String sayGoodBye(){ return "さようなら"; } } package day30; public class TestPerson { public static void main(String[] args){ Person p1 = new Student(); p1.sayHello(); Person p2 = new Teacher(); p2.sayHello(); } }
本文出自 “浪漫的偷笑” 博客,转载请与作者联系!
相关文章推荐
- Java枚举
- 9.Java 加解密技术系列之 RSA
- 8.Java 加解密技术系列之 PBE
- 7.java 加解密技术系列之 AES
- 6. Java 加解密技术系列之 3DES
- Eclipse闪退/打不开/无法启动/一闪而过
- 《java设计模式》之代理模式
- java-下载excel
- Spring面试问题
- struts2拦截器-自定义拦截器,放行某些方法(web.xml配置)
- 5.Java 加解密技术系列之 DES
- 通过Spring Resource接口获取资源
- Java Properties类
- Java 数据库连接——JDBC
- 4.Java 加解密技术系列之 HMAC
- 聊聊并发(七)——Java中的阻塞队列[转]
- Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
- 3.Java 加解密技术系列之 SHA
- java特种兵读书笔记(5-3)——并发之原子性与锁
- Spring 3 AOP 概念介绍