PHP 同 UML 类图

龙飞凤舞000620

龙飞凤舞000620

2016-02-19 16:48

下面,图老师小编带您去了解一下PHP 同 UML 类图,生活就是不断的发现新事物,get新技能~

  UML  是一种表现软件形态结构的图示方式,原则上来讲他允许我们可以用画图的方式设计自己的程序,如果选择了正确的工具,还可以根据图生成代码,本文中我们可以看到PHP代码通过使用 UML 类图在 UML 的表现形式,我们直接跳过关于 UML 的知识,集中介绍一些准确的代码在 UML 中的表现形式。这表示本文内容并非一篇完全的类图分析。

  在文末还有一些作者收集的资源,如果你之前尚未使用过UML,可以从那些资源中开始起步。

  继承 Inheritance

  PHP 关键字:extends 允许你一个类继承自另一个类。

  

?phpclass Senior {}class Junior extends Senior {}? 

  在 UML 范畴,表现如下:

  Inheritance

  注意三角形是指向父类的。

  聚合 Associations

  联合发生在类之间不存在关系,但是可能需要互相访问对方,像一个模型(Model)和一个视图(View),视图需要模型提供数数据来显示。这里有两个不同的联合类型

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  共享聚合 Aggregation

  共享聚合发生的情况如下:

  当一个类(A)访问其他类(B),第二个类(B)也许已经先在外部被实例化。如果第一个对象死去,第二个对象会持续活着。这种情况在数据访问对象(data access objects)很常见,他们中有些已经传递通过了多个对象,这些对象可能已经死去但是数据访问对象还存在。

  这里已经正常地解释了第一个类(A)控制第二个类(B)的部分。

  例子如下:

  

?phpclass Dao {  function getSomething() {  }}class Model {  var $dao;  function Model (& $dao) {    $this-dao=& $dao;  }  function doSomething () {    $this-dao-getSomething();  }}$dao=new Dao;$model=new Model($dao);$model-doSomething();? 

  在 UML 中表现如下:

  Aggregation

  空心的菱形指向控制者类。

  组合聚合 Composition

  组合聚合发生在如下情况:

  第一个类(A)实例化了第二个类(B),第一个类(A)死去的时候,第二个类(B)同时死去。

  换而言之,第一个类(A)控制了第二个类(B)的全部。

  PHP 例子:

  

?phpclass LinkWidget {}class View {  var $linkWidget;  var $page;  function View () {    $this-linkWidget=new LinkWidget;  }  function renderPage () {    $this-page=$this-linkWidget-display();  }}? 

  UML 表现为:

  Aggregation

  实心的菱形指向控制者类。

  消息 Messages

  消息发生情形如下:

  一个类通过控制另一个类的实例来交流数据 。他们之间的关系也是聚合。在PHP中通常出现在使用::操作符号时。如下例:

  

?phpclass HtmlUtils {  function unHtmlEntities ($str) {    $trans_tbl = get_html_translation_table (HTML_ENTITIES);    $trans_tbl = array_flip ($trans_tbl);    return strtr ($str, $trans_tbl);  }}class View {  function renderPage () {    $text=HtmlUtils::unHtmlEntities($text);  }}?

  表现如下:

  One Way Message

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  消息从View发往 HtmlUtils。

  当然也可以发送两种不同方式消息,如下:

  

?phpclass Debug {  function display () {    echo ($this-errorMsg);  }}class SomeClass {  var $errorMsg='This is an error message';  function someFunction () {    if ( DEBUG == 1 ) {      Debug::display();    }  }}define ('DEBUG',1);$someClass= &new SomeClass;$someClass-someFunction();? 

  [ 输出: "This is an error message" ]

  Two Way Messages

  这里 SomeClass 发送一个消息到 Debug,Debug 访问 SomeClasss 的 $errorMsg 属性。

展开更多 50%)
分享

猜你喜欢

PHP 同 UML 类图

Web开发
PHP 同 UML 类图

PHP与UML类图: PHP and UML Class Diagrams

PHP
PHP与UML类图: PHP and UML Class Diagrams

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

PHP IPwhois类

PHP
PHP IPwhois类

php分页类

Web开发
php分页类

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

php基类 调试类 错误类

Web开发
php基类 调试类 错误类

PHP 中的类

Web开发
PHP 中的类

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Oracle中如何使用JOB

Oracle中如何使用JOB

Oracle数据仓库的分层管理器解决方案

Oracle数据仓库的分层管理器解决方案
下拉加载更多内容 ↓