E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
JAVA设计模式
Java设计模式
之cglib动态代理
1、代理的概念为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 功能:负责请求的预处理、过滤、执行完请求后续处理,使得委托类专注于业务处理.SpringAOP就是采用的这种模式A1、根据代理类的生成
Mr_White_b
·
2016-03-10 22:15
java设计模式
GOF23 01 单例模式
一.单利模式简介单例模式能保证在一个JVM中,该对象只有一个实例存在 二.应用场景:1)windows的任务管理器2)读配置文件3)网站计数器4)数据库连接池5)springMVC控制对象 三.优点1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个
laroByo
·
2016-03-10 22:00
java设计模式
——接口模式
之前写了工厂模式和抽象工厂模式,今天觉得还是有必要先说说接口模式,因为这是设计模式的典型使用,算是一个补充了。java不允许多重继承,也就是说一个子类只能有一个父类,SonextendsFatherA,FatherB是错误的为了弥补这点不足,java允许实现多个接口,接口就是给出一些没有内容的方法,类似于C++中的虚类。到具体用的时候再由用的方法自己定义内容,要注意的是想用接口必须实现接口的所有方
beijson
·
2016-03-09 21:00
Java设计模式
学习笔记(观察者模式)
观察者模式说起来很简单,就是一个订报纸的模式。但是实际上这部分我觉得还是很有意思的,《HeadFirst设计模式》里还有一些还没看完,也是因为理解的不够深吧。 观察者模式会包含两个组件:观察者和主题。 这段代码是主题的接口: packageobeserver; publicinterfaceSubject{ publicvoidregisterObserver(Observer
wingsless
·
2016-03-08 20:00
Java设计模式
学习笔记(观察者模式)
观察者模式说起来很简单,就是一个订报纸的模式。但是实际上这部分我觉得还是很有意思的,《HeadFirst设计模式》里还有一些还没看完,也是因为理解的不够深吧。观察者模式会包含两个组件:观察者和主题。这段代码是主题的接口:packageobeserver;publicinterfaceSubject{publicvoidregisterObserver(Observerobserver);publi
wingsless
·
2016-03-08 20:00
Java设计模式
单例模式单例模式是指一个类保证只有一个实例,下面简单介绍一下单例模式的实现方式:实现单例模式注意两点:构造函数必须声明为private变量必须声明为privatestatic懒汉线程不安全public class Singleton { private static Singleton singleton; private Singleton() { } p
陈小扁
·
2016-03-08 15:00
java设计模式
Java设计模式
单例模式单例模式是指一个类保证只有一个实例,下面简单介绍一下单例模式的实现方式:实现单例模式注意两点:构造函数必须声明为private变量必须声明为privatestatic懒汉线程不安全public class Singleton { private static Singleton singleton; private Singleton() { } p
陈小扁
·
2016-03-08 15:00
java设计模式
java设计模式
——抽象工厂模式
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。请看例子:public interface Sender
beijson
·
2016-03-08 14:00
java设计模式
——工厂模式
普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举例如下:(我们举一个发送邮件和短信的例子)首先,创建二者的共同接口:public interface Sender { public void Send(); } 其次,创建实现类:public class MailSender implements Sender { @Overrid
beijson
·
2016-03-07 23:00
Java设计模式
之访问者模式
定义封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。[java] viewplain copy print?class A { public void method1(){ System.out.println("我是A"); } public void metho
ystyaoshengting
·
2016-03-07 21:00
Java设计模式
学习笔记(单例模式)
最近一直在看《HeadFirst设计模式》,这本书写的确实是很不错的,专注于怎么用最简单的方式最通俗的语言让人了解设计模式。据说GoF的设计模式那本书写的很好,是一本经典,但是就是难懂,这本书应该就是我们这些一看经典书就困的人的宝贝了。 不过HeadFirst系列并不专注于写代码,我就把自己学习的时候写出来的代码贴在这里当做笔记吧,也方便搜到的人参考。 单例模式是我遇到的最多的模式了,这种
wingsless
·
2016-03-07 20:00
Java设计模式
学习笔记(单例模式)
最近一直在看《HeadFirst设计模式》,这本书写的确实是很不错的,专注于怎么用最简单的方式最通俗的语言让人了解设计模式。据说GoF的设计模式那本书写的很好,是一本经典,但是就是难懂,这本书应该就是我们这些一看经典书就困的人的宝贝了。不过HeadFirst系列并不专注于写代码,我就把自己学习的时候写出来的代码贴在这里当做笔记吧,也方便搜到的人参考。单例模式是我遇到的最多的模式了,这种模式大部分被
wingsless
·
2016-03-07 20:00
java设计模式
之单例模式
1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。上述几个是适用单例模式的地方单例模式最简单的实现如下:pu
u012806692
·
2016-03-07 20:00
Java设计模式
-设计模式的六种原则
所谓无招胜有招,练一门功夫分为内功和外功。外功好比招式,就是所谓的23种设计模式。而内功呢,就是心法,那就是这6种法则。光会外功那是花拳绣腿,内功修为才是境地。如此众多的设计模式,学完2遍。3遍可能也会忘的仅仅记得单例和工厂模式。可是仅仅要原则记住,在以后的设计中,有意无意就会用的设计模式的精髓。六种设计原则单一职责原则不要存在多于一个导致类变更的原因。通俗的说,即一个类仅仅负责一项职责。
gcczhongduan
·
2016-03-07 20:00
java设计模式
原则
来源《大话设计模式》单一职责原则:一个类仅有一个引起它变化的原因开放-封闭原则:可扩展,不可修改依赖倒转原则:1、 高层不应该依赖于低层模块,两个都应该依赖于抽象2、 抽象不应该依赖于细节,细节应该依赖于抽象李氏代换原则(LSP):子类型必须能够替换掉他们的父类型迪米特法则(LoD):如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话
hll814
·
2016-03-06 23:00
Java设计模式
--观察者模式
观察者模式定义:简单的说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。Subject(被观察的对象接口) 规定ConcreteSubject的统一接口 每个Subject可以有多个ObserverConcreteSubject(具体被观察对象)
u013344815
·
2016-03-06 10:00
java
设计模式
观察者模式
观察者
被观察者
Java设计模式
之建造者模式
建造者模式结构:Builder:抽象建造者ConcretBuilder:具体建造者Director:指挥者Product:具体产品UML图:例子代码:普通建造者:publicinterfaceBuilder{ voidbuildPartA(); voidbuildPartB(); voidbuildPartC(); ProductgetResult(); }publicclassConcreteB
u011459799
·
2016-03-05 15:00
java
java设计模式
建造者模式
Java设计模式
之抽象工厂模式
抽象工厂模式结构:AbstractFactory:抽象工厂ConcreteFactory:具体工厂AbstractProduct:抽象产品Product:具体产品UML图:例子代码:publicinterfaceAbstractFactory{ AbstractProductcreateProductA(); AbstractProductcreateProductB(); }publicclas
u011459799
·
2016-03-05 15:00
java
java设计模式
工厂模式
java设计模式
之代理模式
一:概述:代理模式就是给其他对象提供代理,获取对这个对象的访问二:下面以一个例子来讲述什么事代理模式: 学校要考试了,小高学习成绩不好,于是让小王来替考,在这里就用到了代理模式 先定义一个考试接口 publicinterfaceTest{ //考试的接口 publicvoidwork(); } 定义小王的考试类: publicclassXiaoWangextendsActivityimple
zhou12314
·
2016-03-05 09:00
java
对象
java设计模式
Java设计模式
--单例模式
单例设计模式:保证一个类只有一个设计模式,并提供一个访问它的全局访问点。特点:1.构造方法私有化2.声明一个本类对象3.给外部提供一个静态方法获取对象实例两种实现方式:1.饿汉式2.懒汉式通过建立Singleton1和Singleton2两个类来分别实现饿汉式单例模式和懒汉式单例模式package单例模式; publicclassSingletonDemo{ publicstaticvoidma
u013344815
·
2016-03-04 17:00
java
设计模式
单例设计模式
私有化
Java设计模式
——迭代器模式
概述 网上大部分人说迭代模式的时候,总是以某一种可遍历的对象为例进行介绍。这是可行的,这也是迭代模式的基本原型。当我看到《HeadFrist设计模式》中迭代模式的时候,感觉要是能从另一个角度来说明,可能更能够体现迭代模式的威力所在。 本文介绍的这种迭代模式,倒是更像是适配器-迭代器模式。希望于你有益~版权说明著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:Coding-N
u013761665
·
2016-03-04 12:00
java
设计模式
数组
迭代器
列表
java设计模式
设计模式(DesignPatterns) ——可复用面向对象软件的基础设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件
taz372436
·
2016-03-03 22:00
java设计模式
之访问者模式二
接着上一篇文章,上一篇讲了访问者模式的技术要领(暂且这么说好了),这一篇文章就来说说什么时候比较适合使用访问者模式,统计功能:实现这个功能可以照样使用上一篇实现的工作,只需要在访问者上进行一些修改。这里模拟的是计算所有同学的平均分:publicinterfaceIVisitor{ publicvoidvisit(Fstudentfs); publicvoidvisit(Mstudentms);
u012806692
·
2016-03-03 20:00
java设计模式
Java设计模式
——原型模式
概述 原型模式是为了解决一些不必要的对象创建过程。当JavaJDK中提供了Cloneable接口之后,原型模式就变得异常的简单了。虽然由于Cloneable的引入使用程序变得更简单了,不过还是有一些需要说明和注意的东西在里面的。文本就详细讲解一下这些注意事项吧。版权说明著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:Coding-Naga发表日期:2016年3月3日链接:
u013761665
·
2016-03-03 13:00
java
设计模式
原型模式
浅拷贝
深拷贝
Java设计模式
—单例设计模式(Singleton Pattern)完全解析
转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用的最多的设计模式,可能有很多人会写几种设计模式,那么你是否知道什么是设计模式?为什么会有单例设计模式即它的作用是什么?单例模式有哪些写法?对于这样的问题,可能有部分童鞋并不能很好的回答,没关系今天就和大
tyk0910
·
2016-03-03 10:00
java
设计模式
Singleton
JAVA设计模式
之代理模式(静态代理和动态代理)
静态代理:在运行的时候,已经有代理的class文件,造成一个代理只能代理一个对象。http://blog.csdn.net/jason0539/article/details/22974405这里面讲的静态代理浅显易懂动态代理:代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。http://www.cnblogs.com/jqyp/archive/2010/08/
Uno2
·
2016-03-02 23:31
java基础
java设计模式
之访问者模式一
访问者模式是行为性模式的一种,可以方便我们遍历不同的类型,执行不同的操作,下面要演示的程序循环打印学生的信息publicabstractclassStudent{ /** *考试分数 */ privateintscore; privateStringname; privateintsex; publicintgetScore(){ returnscore; } publicvoidsetScor
u012806692
·
2016-03-02 21:00
java设计模式
JAVA设计模式
-代理模式
代理模式代理模式使用代理对象完成用户请求,屏蔽用户对真实对象的访问。现实世界的代理人被授权执行当事人的一些事宜,无需当事人出面,从第三方的角度看,似乎当事人并不存在,因为他只和代理人通信。而事实上代理人是要有当事人的授权,并且在核心问题上还需要请示当事人。在软件设计中,使用代理模式的意图也很多,比如因为安全原因需要屏蔽客户端直接访问真实对象,或者在远程调用中需要使用代理类处理远程方法调用的技术细节
yangwei19680827
·
2016-03-02 18:00
java设计模式
java设计模式
(六)--观察者模式
转载:设计模式(中文-文字版)目录:简单目标任务实现观察者模式介绍观察者模式代码实现观察者模式是JDK中使用最多的模式之一,非常有用。我们也会一并介绍一对多关系,以及松耦合(对,没错,我们说耦合)。有了观察者,你将会消息灵通。文章首先从一个案例入手开始介绍。这个案例是这样的,团队承包了一个气象站的气象发布系统。工作合约 恭喜贵公司获选为敝公司建立下一代Internet气象观测站! 该气象站必须
changeme
·
2016-03-01 17:00
Java设计模式
1.面向对象编程概述: 转至: http://my.oschina.net/liuyuanyuangogo/blog/4892972.
Java设计模式
概况对某个问题经常出现的、在设计中应该尽量避免的
Holiday_
·
2016-03-01 15:00
JAVA设计模式
之责任链模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(ChainofResponsibility)模式的:责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。责任链
Gavin要加油
·
2016-03-01 00:00
java
设计模式
责任链模式
java设计模式
(五)--建造者模式(Builder)
转载:http://zz563143188.iteye.com/blog/1847029工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后
changeme
·
2016-02-29 18:00
Java设计模式
(二)——迭代模式
迭代模式的基本定义:对于一组对象集合(数组、堆栈、列表或散列),用户无需关心它的底层实现而能够通过调用统一接口遍历当中的所有元素。由于jdk已经对常见的迭代模式实现了封装,本文直接提供Collection和Iterator两个接口的模拟。定义Iterator接口/* *设计迭代接口 */ publicinterfaceIterator{ //测试是否有下一个元素 booleanhasNe
冷豪
·
2016-02-29 13:00
Java设计模式
(二)——迭代模式
迭代模式的基本定义:对于一组对象集合(数组、堆栈、列表或散列),用户无需关心它的底层实现而能够通过调用统一接口遍历当中的所有元素。由于jdk已经对常见的迭代模式实现了封装,本文直接提供Collection和Iterator两个接口的模拟。定义Iterator接口/**设计迭代接口*/publicinterfaceIterator{//测试是否有下一个元素booleanhasNext();//返回下
冷豪
·
2016-02-29 13:00
Java设计模式
-- 单例模式
有些时候,我们想要一个类在整个系统中仅存在一个实例。比如说,系统给我们提供了一个打印机硬件设施,但是我们在系统中多次new打印机,创建出多个打印机的实例去完成打印任务,那么这个时候就会出现资源冲突现象,这就要求我们必须想一个办法,去确保系统中存在唯一的一个打印机实例,解决方法有很多种,比如创建一个全局变量publicstaticPrintermPrinter=newPrinter();这样创建一个
Hwaphon
·
2016-02-28 10:00
单例
java设计模式
懒汉式
饿汉式
双重检查锁定
用
Java设计模式
中的观察者模式开发微信公众号的例子
还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗窃的时候,总有一两个人在门口把风――如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。呵呵,上面提到的放风者、偷窃者之间的关系就是观察者模式在现实中的活生生的例子。观察者(Obs
鸿洋_
·
2016-02-28 10:25
java设计模式
之策略模式
策略模式概述:该设计模式是实现一个接口,各个子类去实现这个接口,在各个子类中可以实现各自的算法,然后在客户端持有这个接口的引用,可以随时去调用这个接口任何的一个实现算法优点:充分体现了高内聚,低耦合及扩展性(OCP)原则代码:publicinterfaceMethod{ //定义一个算法接口,用于子类实现 publicintout(); }实现这个接口,定义各自的算法;第一个实现类,定义一个加法:
zhou12314
·
2016-02-28 07:00
java
android
java设计模式
Java设计模式
---单例模式
单例模式的几种实现方法,具体如下:懒汉模式publicclassSingleton{privatestaticSingletoninstance;privateSingleton(){}publicstaticSingletongetInstance(){if(instance==null){instance=newSingleton();}returninstance;}}优点-可以延迟加载缺点
DevWiki
·
2016-02-27 19:22
Java设计模式
Java设计模式
---单例模式
单例模式的几种实现方法,具体如下:懒汉模式publicclassSingleton{privatestaticSingletoninstance;privateSingleton(){}publicstaticSingletongetInstance(){if(instance==null){instance=newSingleton();}returninstance;}}优点-可以延迟加载缺点
DevWiki
·
2016-02-27 19:22
Java设计模式
java设计模式
(四)--单例模式
Singleton最熟悉不过了,下面学习单例模式。转载:http://zz563143188.iteye.com/blog/1847029单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频
changeme
·
2016-02-27 18:00
java设计模式
之责任链模式
责任链模式也是行为型模式的一种,就是上每个对象都持有对下一个对象的引用,形成一条链,最上层的对象可以通过对下一个对象的引用,将请求传递给链中的任意一个对象。为了说明责任链的用途,在这里先写一个没有使用责任链的例子publicinterfaceGVnment{ /** *处理事情 */ publicvoidHandleMess(); }publicclassPeople{ intthings;
u012806692
·
2016-02-26 17:00
java
设计模式
java设计模式
java设计模式
(三)--抽象工厂模式
转载:http://zz563143188.iteye.com/blog/1847029前面的工厂方法模式虽然清晰,但还是感觉有些繁琐,通常使用的还是抽象工厂模式。工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的
changeme
·
2016-02-26 14:00
设计模式之个人通俗理解
参考材料如下:Java之美[从菜鸟到高手演变]之设计模式-智慧演绎,无处不在-博客频道-CSDN.NET设计模式(计算机)-维基百科,自由的百科全书
Java设计模式
之实例详解_中国IT实验室_技术专题追
Alen_Sun
·
2016-02-26 12:34
学习笔记
Java设计模式
透析之 — 策略(Strategy)
今天你的leader兴致冲冲地找到你,希望你可以帮他一个小忙,他现在急着要去开会。要帮什么忙呢?你很好奇。他对你说,当前你们项目的数据库中有一张用户信息表,里面存放了很用户的数据,现在需要完成一个选择性查询用户信息的功能。他说会传递给你一个包含许多用户名的数组,你需要根据这些用户名把他们相应的数据都给查出来。这个功能很简单的嘛,你爽快地答应了。由于你们项目使用的是MySQL数据库,你很快地写出了如
PENGYUCHENG32109
·
2016-02-26 08:00
设计模式——简介
注:此篇文章参考自
Java设计模式
(耿祥义张跃平著,清华大学出版社.2013)。 一、首先,了解下什么是设计模式吧。
Bill56
·
2016-02-26 07:25
java
设计模式
简单工厂模式
java设计模式
之命令模式
命令模式是行为性模式的一种,按名字的意思来解释这个模型就是帮助发命令,也就是实现发命令者和执行者之间的解耦。具体到实现我们需要一个发送命令的类,命令执行类以及命令类。发送的命令可以有很多种,所以命令要实现一个接口或者继承一个抽象类publicinterfaceCommand{ /** *命令只有一个方法就是执行 */ publicvoidexec(); }命令执行类,因为不同的命令可能对应不同的
u012806692
·
2016-02-25 20:00
java
设计模式
java设计模式
Spring中IOC和AOP的详细解释
代理模式是常用的
java设计模式
,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类
AmyTian
·
2016-02-25 20:00
spring
AOP
IOC
设计模式——简介
注:此篇文章参考自
Java设计模式
(耿祥义张跃平著,清华大学出版社.2013)。一、首先,了解下什么是设计模式吧。
Bill56
·
2016-02-24 22:00
Java
设计模式
简单工厂模式
设计模式——简介
注:此篇文章参考自
Java设计模式
(耿祥义张跃平著,清华大学出版社.2013)。一、首先,了解下什么是设计模式吧。
Bill56
·
2016-02-24 22:00
Java
设计模式
简单工厂模式
java设计模式
之代理模式
代理模式是结构型模式中的一种,代理模式顾名思义就是我现在太忙了,如果要使用我的功能就去找我的代理,代理知道我会什么,你告诉代理,代理再告诉我,由我来做最后的操作,所以代理和我得实现相同的接口。代理模式一般应用于扩展某个已经实现的类的功能(这符合开闭原则:对扩展开放,对修改关闭”)。先写一个代理人和被代理人都要实现的接口,我们假定被代理人为一个歌手,歌手的代理则为其经纪人,他们都要实现的接口则为工作
u012806692
·
2016-02-24 17:00
java设计模式
上一页
107
108
109
110
111
112
113
114
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他