php 接口类,抽象类 的实际用作
今天有个小兄弟问我,php里面的接口类,抽象类到底有什么用呢,他完全不会用,觉得用也没有什么意思,其实和他的想法是一样的,在我才接触php的时候,也觉得这个东西没有什么用,在后来的逐渐接触大系统以后,才发现其实这些东西还是有一定的作用的,下面我就简单的说说。
1.php 接口类:interface
其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如
interface Shop
{
public function buy($gid);
public function sell($gid);
public function view($gid);
}
我声明一个shop接口类,定义了三个方法:买(buy),卖(sell),看(view),那么继承此类的所有子类都必须实现这3个方法少一个都不行,如果子类没有实现这些话,就无法运行。实际上接口类说白了,就是一个类的模板,一个类的规定,如果你属于这类,你就必须遵循我的规定,少一个都不行,但是具体你怎么去做,我不管,那是你的事,如:
class BaseShop implements Shop
{
public function buy($gid)
{
echo '你购买了ID为 :' . $gid . '的商品';
}
public function sell($gid)
{
echo '你购卖ID为 :' . $gid . '的商品';
}
public function view($gid)
{
echo '你浏览了ID为 :' . $gid . '的商品';
}
}
你想想,在一个多人合作的大项目里面,有了接口类是多么的方便,这样你就不用去问别人,你的某某功能的方法名是什么了,当然如果你们喜欢这样我也没有办法。
结论 : 接口类就是一个类的领导者,指明方向,子类必须完成它指定方法。
2.php 抽象类 : abstract
其实抽象类和接口类有一部分很像,记得在哪里看见这样一句话,抽象类就把类像的部分抽出来,这句看上去很搞笑,其实它说出了抽象类的真理,抽象类的作用是,当你发现你的很多类里面用很多方法你不断的在重复写,那你就可以考虑使用抽象类了,你可能会说“我不是可以重写一个类每个公共类我个实例化一个这个公共类,调用相同的方法就可以了”,这里是可以,实际上抽象类做的工作也就是这个,不过他省去了你实例化的这个步骤,让你就像直接调用本类方法一样方便,而且你还可以重载这个方法。如:
abstract class BaseShop {
public function buy($gid)
{
echo '你购买了ID为 :' . $gid . '的商品';
}
public function sell($gid)
{
echo '你购卖ID为 :' . $gid . '的商品';
}
public function view($gid)
{
echo '你浏览了ID为 :' . $gid . '的商品';
}
}
class BallShop extends BaseShop
{
var $itme_id = null;
public function __construct()
{
$this->itme_id = 2314;
}
public function open()
{
$this->sell($this->itme_id);
}
}
这里是一个例子,想上面一样我定义了一个商店类,抽所了它所有像的部分,买(buy),卖(sell),看(view),并且抽象类里都实现了这些方法,那么继承它的子类就自动获得了这些方法,子类就做它自己独特的东西,介绍代码的重复,提高复用性。
结论: 抽象类就是一个类的服务提供商,拥有众多服务,你不用必须用,当需要的时候你来用就可以,如果你觉得不提供服务不满意,你还可以自己来做。
呵呵,以上就是我对php 接口类,抽象类一些拙见,希望能对搞不清这两个朋友一些帮助,如果什么意见欢迎留言
jerry
sprintf用法
今天在网上发现了这个sprintf(format,arg1,arg2,arg++)的详细介绍,转载一下
[js] execCommand 命令详解
document.execCommand()方法处理Html数据时常用语法格式如下:
复制内容到剪贴板
代码:
document.execCommand(sCommand[,交互方式, 动态参数])
其中:sCommand为指令参数(如下例中的”2D-Position”),交互方式参数如果是true的话将显示对话框,如果为false的话,则不显示对话框(下例中的”false”即表示不显示对话框),动态参数一般为一可用值或属性值(如下例中的”true”)。
清明·合肥
清明我和我家小虎到了合肥,天气终于从不断的下雨中走了出来,很久没有看见太阳的我,开开心心在太阳下面游玩了两天,感觉很好,真希望以后每天都是这种天气,唉,不过时间过的很快,不知不觉三天就完了,感觉休息总是过的很快。

站在花丛中的我
产品设计与用户体验——pony峰会分享笔记[转]
背景:pony是公司的首席体验官、首席产品经理。这次在产品峰会上pony将自己平时经验的积累与大家交流,体验较细。这次分享研发管理部,设计中心整理了些材料。主要的案例是qqmail和qq影音的内容。以此为demo来讲解。
pony的讲解主要分为三大部分:产品设计、产品运营、交互设计。
在开场首先提到,互联网同类产品竞争激烈,只有抓住用户的心才能持续走下去。产品要赢得用户的心,要从一些小的点来赢得用户。
第一部分:产品设计
这个部分,感受最深的是两个词:核心能力、口碑。这部分还着重提到了pony对产品经理素质、开发人员心态的期望。
核心能力
任何产品都有核心功能,能帮助到用户,解决用户某一方面的需求,如节省时间、解决问题,提升效率等等。
很多产品经理对核心能力的关注不够,不是说完全没有关注,而是没有关注到度。核心能力不仅仅是功能上也,也包括性能上的。对于技术出身的产品经理,特别是做后台出来的,对于性能的关注,如果自己有能力、有信心做到对核心能力的关注,肯定会渴望将速度、后台做到极限。现在很多产品都没做好,一抓问题一大堆。如,前阵子网页速度优化,好多东西可以优化,一下提速好多,之前不知道都做什么去了。之前用户忍受了很久,同时浪费时间、浪费我们的资源。不抓,都没人理,很说部过去。要在性能方面放入更多精力。
谈到核心的能力,首先要有技术突破点。如做影音的时候,不是要做人家有我也有的东西。以前公司做的你有我有的东西,总是排在第二第三,虽然也有机会,但缺乏第一次出来亮相失去用户的认同感。
第一要关注你的产品的硬指标,在设计和开发的时候要考虑到外部会将对它与竞争对手做评测。如播放能力,占用内存。qq影音的核心性能和速度直接超越暴风影音。这样就能看到用户很多的好评和口碑。所以之后如果qq影音不出大问题,发展的势头将会很好。
Read the rest of this entry »
10大实用web应用界面技术[译]
![]()
无事看到不错的外文,简单翻译了一下共享出来,希望对大家有用。(转载请表明出处,以下为译文全部。)
当今越来越多的应用程序迁移到web平台上。由于没有平台的限制和安装的要求,SAAS的模式看起来非常有吸引力。Web应用程序的界面设计,其核心就是网页设计,但它的重点主要是在功能方面。要超越桌面应用程序, Web应用程序必须提供简单、直观和即时响应的用户界面,让他们的用户花更少的精力和时间去完成事情。
以前,我们并没有注意到web应用程序这个方式,但是现在是时候仔细看看一些实用的技术和设计解决方案,让Web应用更友好更漂亮。本文主要介绍的是在现代Web应用程序中,我们对设计模式以及有效设计解决方案进行大量研究并得到结果的第一部分,您可以在下面找到10个收集到的实用界面设计技术以及在许多成功Web应用程序中得出的最佳做法。
php邮件发送类
新开张之际放上以前写的一个php 邮件发送类,还是挺好用的,如果有什么要补充的请大家指教
我的部落格重新开张
这几天突然发现我的 blog 访问不了了,一看才知道原来是域名过期了, 晚上回家折磨了一晚上小杨同学,把我的blog 弄好,结果发现以前的内容全部都找不回来了,真是伤心啊,看来以后要经常来照顾下这个部落格了。
最后还是要谢谢下小杨,和马上要给我上海车展票的小呆
