设计模式作业代码
来源:互联网 发布:北京神奇时代网络 编辑:程序博客网 时间:2024/05/22 04:48
1、单件模式
单线程:
public class Singleton{
private static Singleton uniqueInstance;
private Singleton(){
}
public static Singleton getInstance(){
if(uniqueInstance==null){
uniqueInstance=new Singleton();
}
return uniqueInstance;
}
public void test(){
System.out.println("test singleton");
}
}
public class test2 {
public static void main(String args[]){
Singleton asingleton=Singleton.getInstance();
Singleton bsingleton=Singleton.getInstance();
asingleton.test();
bsingleton.test();
}
}
多线程:
public class Singleton{
private static Singleton uniqueInstance;
private Singleton(){
test();
}
public static Singleton getInstance(){
synchronized(Singleton.class){//同步
if(uniqueInstance==null){
uniqueInstance=new Singleton();
}
}
return uniqueInstance;
}
public void test(){
System.out.println("test singleton");
}
}
2、代理模式
接口:
public interface MyForum {
public void AddFile();
}
代理类:
public class MyForumProxy implements MyForum {
private RealMyForum forum ;
private int permission ; //权限值
public MyForumProxy(int permission)
{
forum = new RealMyForum()
this.permission = permission ;
}
//实现的接口
public void AddFile()
{
//满足权限设置的时候才能够执行操作
//Constants是一个常量类
if(Constants.ASSOCIATOR == permission)
{
forum.AddFile();
}
else
System.out.println("You are not a associator of MyForum ,please registe!");
}
}
实体类:
public class RealMyForum implements MyForum {
public void AddFile() {
//省略具体实现步骤
System.out.println("AddFile");
}
}
3、观察者模式
一个实现发送邮件的观察者:
import java.util.Observable;
import java.util.Observer;
public class MailObserver implements Observer{
/**
* 这个类取名为MailObserver,顾名思义,她是一个用来发送邮件的观察者
*/
public void update(Observable o, Object arg) {
System.out.println("发送邮件的观察者已经被执行");
}
}
一个实现发送jms消息的观察者:
import java.util.Observable;
import java.util.Observer;
public class JMSObserver implements Observer{
public void update(Observable o, Object arg) {
System.out.println("发送消息给jms服务器的观察者已经被执行");
}
}
被观察者:
import java.util.Observable;
import java.util.Observer;
public class Subject extends Observable{
/**
* 业务方法,一旦执行某个操作,则通知观察者
*/
public void doBusiness(){
if (true) {
super.setChanged();
}
notifyObservers("现在还没有的参数");
}
public static void main(String [] args) {
//创建一个被观察者
Subject subject = new Subject();
//创建两个观察者
Observer mailObserver = new MailObserver();
Observer jmsObserver = new JMSObserver();
//把两个观察者加到被观察者列表中
subject.addObserver(mailObserver);
subject.addObserver(jmsObserver);
//执行业务操作
subject.doBusiness();
}
}
- 设计模式作业代码
- 软件模式设计作业
- OOAD作业---设计模式---装饰者模式
- OOAD作业---设计模式---访问者模式
- 设计模式代码
- 设计模式代码程序
- 代码片段-设计模式
- 模板设计模式代码
- 组合设计模式代码
- 组合设计模式代码
- 模板设计模式代码
- 【设计模式】整洁代码
- 大话设计模式-代码
- UML (1) 设计模式及作业附图
- 期末作业系列之设计模式
- 设计模式-模式和代码
- 【设计模式】Iterator设计作业-设计LinkedList的iterator
- 设计模式,理解模式,代码模式
- Ctags TagList Install
- VC 调试的快捷键
- 64bit CPU 知识 (IA32,IA64,EM64T,AMD64)-用于oracle、mysql安装版本的选择
- HP大中华区总裁孙振耀退休感言
- 程序员眼中的UML(转载)
- 设计模式作业代码
- http文件上传form(可添加定制上传文件数量)
- 3 - ONE开发参考
- 作为一个教师,如果搞好学生的期末课堂复习?给大家介绍一个好方法。
- 2 - ONE的架构
- WF从入门到精通(第二章):workflow运行时
- C语言拾遗(一)
- Windows编程基础
- 为wordpress配置apache url重定向/apache url rewrite for wordpress