day19装饰模式和SystemInfo,ExceptionInfo

翻译 2016年08月30日 19:22:44
/*
装饰设计模式
当想要对已有的对象进行功能增强时
可以定义类,将已有对象传入,基于已有的功能,并提高增强功能
那么自定义的该类就成装饰类

装饰类通常会通过构造方法接受被装饰的对象
基于被装饰的对象,增强功能
*/
class Person
{
public void chifan()
{
System.out.println("吃饭");
}
}
class SuperPerson
{
private Person p;
SuperPerson(Person p)
{
this.p=p;
}
public void superchifan()
{
System.out.println("开胃酒");
p.chifan();
System.out.println("甜点");
System.out.println("来一根");
}
}
class  PersonDemo
{
public static void main(String[] args) 
{
Person p=new Person();
//p.chifan();


SuperPerson sp=new SuperPerson(p);
sp.superchifan();
System.out.println("Hello World!");
}

}

-------------------------------

/*
装饰和继承
MyReader专门用于读取数据的类
|--MyTextReader
|--MyMediaReader

class MyBufferReader
{
MyBufferReader(MyTextReader text)
{}
MyBufferReader(MyMediaReader media)
{}
}
上面这个类扩展性极差
找到其参数的共同类型,通过多态的形式,可以提高扩展性
class MyBufferReader
{
MyBufferReader(MyReader mr)
{}

}
装饰模式比继承灵活,避免了继承体系臃肿
而且降低类与类的耦合

装饰类因为增强已有对象,具备功能和已有是相同的,只不过更强
装饰类和被装饰类都属于一个体系中的。
*/
class  zhuangshi
{
public static void main(String[] args) 
{
System.out.println("Hello World!");
}
}

--------------------------------------------

import java.io.*;
import java.util.*;
class SystemInfo 
{
public static void main(String[] args) 
{
Properties prop=System.getProperties();


//System.out.println(prop);
//System.setOut();
prop.list(new PrintStream("systemifo.txt"));

}
}

------------------------------------

import java.io.*;
import java.util.*;
import java.text.*;

class  ExceptionInfo
{
public static void main(String[] args)  
{
try
{
int[] arr=new int[2];
System.out.println(arr[3]);
}
catch (Exception e)
{
try
{
Date d=new Date();
SimpleDateFormat sdt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

PrintStream ps=new PrintStream("exceptionm.log");
ps.println(d.toString());
System.setOut(ps)
}
catch (IOException ex)
{
throw new RuntimeException("日志文件创建失败");
}
e.printStackTrace(System.out);
}
}
}
//log4j

设计模式第六站--桥接模式PK装饰模式

设计模式学到
  • YSC1123
  • YSC1123
  • 2014年05月17日 11:32
  • 1772

Windows下的systeminfo命令获取系统信息

该命令是Windows中用于显示关于计算机及其操作系统的详细配置信息,包括操作系统配置、安全信息、产品 ID 和硬件属性,如 RAM、磁盘空间和网卡和补丁信息等。 简介 Systeminfo(命令行)...
  • kongshuai19900505
  • kongshuai19900505
  • 2016年05月18日 22:43
  • 2329

设计模式--策略模式,装饰模式

坚持着客户端代码是程序的入口,构造函数是类的入口为原则,对策略模式,装饰模式和代理模式理解整理如下:...
  • u012466304
  • u012466304
  • 2014年12月08日 12:57
  • 1952

利用systeminfo命令查看电脑系统安装时间等信息

我们单击“开始”-“运行”,输入“CMD”回车后,打开进入DOS命令提示符窗口,再在DOS窗口下输入“systeminfo”命令,就可以查看到自己的Windows XP系统的安装时间(指Windows...
  • zfqzpp
  • zfqzpp
  • 2013年03月03日 19:48
  • 1316

装饰模式 模板方法模式

装饰模式:动态给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 当系统需要新功能的时候,向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为。 把类中的...
  • henry860916
  • henry860916
  • 2017年05月13日 09:12
  • 136

【JS设计模式】装饰者模式和组合模式两者很像,那么这二者之间又有什么区别呢?

装饰者模式可以用来透明地把对象包装在具有同样接口的另一个对象中。这样一来,你可以给一个方法加一些行为,然后将方法调用传递给原始对象。相对于创建子类来说,使用装饰者对象是一种更灵活的选择。装饰者模式和结...
  • itpinpai
  • itpinpai
  • 2016年06月02日 15:34
  • 3578

详细讲解装饰者模式和继承之间的关系和优劣(讲道理这事儿,不怕过 就怕不够)

在上一个装饰者模式简单实例中,可能有的朋友会觉得:使用继承不也是可以实现的嘛,干嘛这么麻烦。具体如下: 新建一个类,继承PersonBefore,然后,在子类里面调用super.eat(),也是可以直...
  • qq_27093465
  • qq_27093465
  • 2016年11月24日 18:12
  • 1230

设计模式之装饰模式和代理模式区别与联系

一.你在一个地方写装饰,大家就知道这是在增加功能,你写代理,大家就知道是在限制      1.最常见的代理就是权限判断了,权限就肯定是限制了      2.装饰模式是指增强被包装对象的功能   ...
  • sky_100
  • sky_100
  • 2016年09月13日 17:32
  • 10159

装饰模式 VS. 外观模式

一、装饰模式         小菜想要和MM约会需要给自己扮靓,而新入住房子之前也需要对每个房间装修一遍,这些事情都有一个共同的特点,就是一个词“装饰”,我们可以把装饰模式应用在这些事情上面。 ...
  • xdd19910505
  • xdd19910505
  • 2014年04月06日 16:44
  • 1951

SystemInfo获取系统参数

System类可以指出Unity项目的一些设备信息。一些常用的静态属性:SystemInfo.deviceModel //设备模型(string) SystemInfo.deviceName //设...
  • qq_33337811
  • qq_33337811
  • 2017年03月05日 18:26
  • 1113
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:day19装饰模式和SystemInfo,ExceptionInfo
举报原因:
原因补充:

(最多只允许输入30个字)