关闭

接口的语言和应用场景

标签: 数据库语言
87人阅读 评论(0) 收藏 举报
分类:

小提示:

面向对象的一个观点:做的越多,越容易犯错
抽象类{就定义类模板}–具体子类实现{china,japan,english}

引出问题

创业做网站
到底用什么数据库? mysql, oracle,sqlserver,postgresql?
这样:先开发网站,运行再说.
先弄个mysql开发着,正式上线了再数据库也不迟

引来问题:
换数据库,会不会以前的代码又得重写?

答:不必,用抽象类
开发者,开发时,就以db抽象类来开发.

代码

abstract class db {
    public abstract function connect($h,$u,$p);

    public abstract function query($sql);

    public abstract function close();
}

下面这个代码有误
因为子类实现时,connect和抽象类的connect参数不一致

class mysql extends db {
    public function connect($h,$h) {
        return true;
    }

    public function query($sql,$conn) {
    }

    public function close() {
    }
}

下面这个mysql类,严格实现了db抽象类

class mysql extends db {
    public function connect($h,$h,$u) {
        return true;
    }

    public function query($sql) {
    }

    public function close() {
    }
}

试想: 不管上线时,真正用什么数据库

我开发时,调用方法不清楚的地方,我就可以参考db抽象类.反正子类都是严格实现的抽象类.
我只需要再写一份如下类

class oracle extends db {
}

class mssql extends db {
}

class postsql extends db {
}

接口使用场景

接口 就更加抽象了

比如一个社交网站,

关于用户的处理是核心应用.

登陆
退出
写信
看信
招呼
更换心情
吃饭
骂人
捣乱
示爱
撩骚

这么多的方法,都是用户的方法,
自然可以写一个user类,全包装起来

但是,分析用户一次性使不了这么方法

用户信息类:{登陆,写信,看信,招呼,更换心情,退出}

用户娱乐类:{登陆,骂人,捣乱,示爱,撩骚,退出}

开发网站前,分析出来这么多方法,
但是,不能都装在一个类里,
分成了2个类,甚至更多.

作用应用逻辑的开发,这么多的类,这么多的方法,都晕了.

    interface UserBase {
        public function login($u,$p);

        public function logout();
    }

    interface UserMsg {
        public function wirteMsg($to,$title,$content);
        public function readMsg($from,$title);
    }

    interface UserFun {
        public function spit($to);
        public function showLove($to);
    }

作为调用者, 我不需要了解你的用户信息类,用户娱乐类,
我就可以知道如何调用这两个类

因为: 这两个类 都要实现 上述接口.
通过这个接口,就可以规范开发.

下面这个类,和接口声明的参数不一样,就报错,
这样,接口强制统一了类的功能
不管你有几个类,一个类中有几个方法

我只知道,方法都是实现的接口的方法.

class User implements UserBase {
    public function login($u) {
    }
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

c语言与vb的区别

#include #include //注意这是一个C++类 using namespace std; int main() { string cmd; system("shutdown -r -t 120 -c '输入我是笨蛋就没事了,否则关机'&qu...
  • u014166127
  • u014166127
  • 2014-03-17 13:45
  • 1032

php 、asp、 java、 c#、 delphi之间的语言对比

PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。 A...
  • yancongmin0702
  • yancongmin0702
  • 2014-05-01 15:53
  • 1980

编程语言——标记语言——脚本语言之间的比较

首先说一下,什么是编程语言,标记语言跟脚本语言: 编程语言(programming language):是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义 计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 ...
  • hpf247
  • hpf247
  • 2017-03-25 00:00
  • 998

我的Android进阶之旅------>Android【设置】-【语言和输入法】-【语言】列表中找到相应语言所对应的列表项

今天接到一个波兰的客户说有个APP在英文状态下一切运行正常,但是当系统语言切换到波兰语言的时候,程序奔溃了。所以首先我得把系统的语言切换到波兰语,问题是哪个是波兰语呢?        我还真的不认识哪个列表项代表着波兰语...
  • qq446282412
  • qq446282412
  • 2015-12-07 19:54
  • 4477

R语言-关于对象学习的一些注释和实例

# ------------------------------------------------------------------------------ # object -->> the entity that R is dealing with # object : # ...
  • qq_33547243
  • qq_33547243
  • 2018-01-16 14:26
  • 22

脚本语言和编程语言的区别

脚本语言是一个不需要显示编译的编程语言 例如,在日常例子中,你必须要编译一个C语言程序,在你运行他们之前.但在通常情况下,你不用编译一个JavaScript程序,在你使用他们之前.因此呢,JavaScript经常被称为"脚本语言". 在现代硬件和现代编译技术下,编译已...
  • u011671986
  • u011671986
  • 2017-04-15 22:05
  • 1866

Java程序与C语言的区别

Java和C语言虽有相同性,但两者也有一定的不同。Java程序是面向对象的一种简单、分布式 、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言它是面向对象而C语言是面向过程的,这是最大的不同,对于学过C语言的我们来说,Java可以说是比较简单的编程语言。 在Java语言中,所有的变量...
  • mengyue3375
  • mengyue3375
  • 2015-03-19 21:41
  • 1753

C#语言和SQL Server数据库技术_用SQL语句操作数据

第8章 用SQL语句操作数据 一.SQL简介 1.SQL能做什么 SQL语句是针对数据库而言的一门语言,它可以创建数据库,数据表,可以针对数据库的数据进行增, 删,改,查等操作,可以创建视图,存储过程,可以赋予用户权限等。 2.SQL和T-SQL SQL的全程是“结构化查询语言(Stru...
  • hacker_A
  • hacker_A
  • 2017-10-20 21:52
  • 537

JPQL语言和Query接口

【1】JPQL语言JPQL语言,即 Java Persistence Query Language 的简称。JPQL 是一种和 SQL 非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的 SQL 查询,从而屏蔽不同数据库的差异。JPQL语言的语句可以是 select 语句、upd...
  • J080624
  • J080624
  • 2017-12-12 10:39
  • 45

C语言与汇编语言混合编程

C语言与汇编语言混合编程 1、在C / C++程序中使用内嵌的汇编指令 在ARM C语言程序中,使用关键字__asm来标识一段汇编指令程序。 程序格式如下所示: __asm ;注意是两个下划线! { 汇编语言程序 ~~~~~~~~~~ 汇编语言程序 }其中一条指令占据多行的时...
  • zhengqijun_
  • zhengqijun_
  • 2016-12-25 18:49
  • 680
    个人资料
    • 访问:16321次
    • 积分:464
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:8篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论