先屁话几句:
抽象类和接口其实对功能的实现没什么用,也不会直接的给代码带来什么可推护性,反过来说因为事先抽象好了所有的功能,所有的程序多要安照这个抽象的规则来实现这些功能,所以就间接的给程序带来了可维护性。。。嘿嘿不知道说的对不。。
实际操作
迪象类和接口的实际操作中的实现应该是这样的,首先是由网站的框架设计师设计好抽象类,然后是由下面的程序员来实现抽象类中的各项功能,这样的话程序员就只能安照设计师设计好的规则来写,实际的作用就是易于管理。。。
何实使用接口,何时使用抽象类
比如说我写好了一个抽象类,里面有两个功能打开数据库和关闭数据库
abstract class db{
abstract public function opdb();
abstract public function codb();
}
接着我又想还要一个报错的功能,想想报错和数据有关系吗??? ???????????我也有点迷糊,,,,反正是没有多大的关系,其它的类也会有这功能所以再写个接口吧
interface dberror{
public function ErrorIofo();
}
实现部分
class aaa extends db implements db{
public function opdb();
public function codb();
public function ErrorIofo();
}
初中文化写的比较潦草,,还希望大家多多批评,,指出不对的地方
[ 本帖最后由 PhpServerPage 于 2008-9-15 19:12 编辑 ]


最新回复
希望谁能更好的说明一下
[ 本帖最后由 PhpServerPage 于 2008-9-15 18:58 编辑 ]
QUOTE:
你还真牛,这多知道,,,,,怎么没人来批评一下啊。。。。。。。。。。。QUOTE:
抽象类和迪象类这两个字用拼音输入法一般不会犯这么搞笑的错误,也只有五笔能出偏旁的差异错误!OOP就三斧子:分类、分层、关系
> 抽象类和接口其实对功能的实现没什么用,也不会直接的给代码带来什么可推护性,
其实直接就可以带来好处了, 当接口定下来后, 开发者只要按接口来开发, 专注了某个类里面, 而不用太多的顾及到调用者.
LZ的实现部分, 我觉得是不是想这样写:
就像LZ的代码, 无法看出OO的优势出来, 反而给人一种, 多此一举的感觉.
就像我的另一张贴中说的, LZ只是停留在类的定义上, 你应该考虑怎么样使用你的DB类会比较好用, 而不是想怎么样去应用抽象类和接口.
当你考虑怎么样使用某个类会好用后, 有一天需要的时候, 你自然会用到抽象类和接口.
而LZ这种错误处理方式, 还是比较传统的处理方式, 与函数, 或面向过程的方式差不多.
我觉得这种错误处理, 应该使用异常.
异常可以中断后面的运行, 也可以多层抛出, 不用只能在发生错误的对象上才能取得错误消息.
我想这样举例好比较好些
class aaa extends db implements dberror{
public function opdb();//打开数据库链接
public function codb();//关闭数据库
public function query($sql);//提交sql
public function SafeHandling($sql);//给不安全的sql做一些处理,这个是接口里的
}
楼上说的易用性肯定是重要的,不过用这抽象类和接口是为了程序的可维护性吧,呵呵不知道是错是对、、
比如接着上面的例子
抽象数据库,数据库有很多种,mysql mssql 等等等等。。。
比如我给抽象类中再加个计算数据的功能,那么mssql mysql 子类中只要一个没有实现这个功能,就有报致命的错误。。。。
呵呵,不知道是不是会又说错了
QUOTE:
哈哈,有意思!由此看来,接口更灵活些。不用被数据绑死