词条 | 面向对象设计 |
释义 | 什么是面向对象设计概念面向对象设计模式解决的是“类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面。 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是那些可以满足“应对变化,提高复用”的设计。 面向对象设计模式描述的是软件设计,因此它是独立于编程语言的,但是面向对象设计模式的最终实现仍然要使用面向对象编程语言来表达,本课程基于C#语言,但实际上它适用于支持.NET框架的所有.NET语言,如Visual Basic、.NET、C++/CLI等。 面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对“面向对象”纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的前提是首先掌握“面向对象”! OOPL的三大机制从编程语言直观了解面向对象 各种面向对象编程语言相互有别,但都能看到它们对面向对象三大机制的支持,即: “封装、继承、多态” – 封装,隐藏内部实现 – 继承,复用现有代码 – 多态,改写对象行为 使用面向对象编程语言(如C#),可以推动程序员以面向对象的思维来思考软件设计结构,从而强化面向对象的编程范式。 C#是一门支持面向对象编程的优秀语言,包括:各种级别的封装支持;单实现继承+多接口实现;抽象方法与虚方法重写。 但OOPL并非面向对象的全部 通过面向对象编程语言(OOPL)认识到的面向对象,并不是面向对象的全部,甚至只是浅陋的面向对象。 OOPL的三大机制“封装、继承、多态” 可以表达面向对象的所有概念,但这三大机制本身并没有刻画出面向对象的核心精神。换言之,既可以用这三大机制做出“好的面向对象设计”,也可以用这三大机制 做出“差的面向对象设计”。不是使用了面向对象的语言(例如C#),就实现了面向对象的设计与开发!因此我们不能依赖编程语言的面向对象机制,来掌握面向对象。 OOPL没有回答面向对象的根本性问题——我们为什么要使用面向对象?我们应该怎样使用三大机制来实现“好的面向对象”? 我们应该遵循什么样的面向对象原则? 任何一个严肃的面向对象程序员(例如C#程序员),都需要系统地学习面向对象的知识,单纯从编程语言上获得的面向对象知识,不能够胜任面向对象设计与开发。 PHP面向对象实例class MySql { var $user,$pass,$host,$db; var $id,$data,$fields,$row,$row_num,$insertid,$version,$query_num=0; function __construct($host,$user,$pass,$db) { $this->host = $host; $this->pass = $pass; $this->user = $user; $this->db = $db; $this->dbconnect($this->host, $this->user, $this->pass); $this->selectdb($this->db); if($this->version() >'4.1') mysql_query("SET NAMES utf8"); } function dbconnect($host,$user,$pass) { $this->id = @ mysql_connect($host,$user,$pass) OR sysMsg("连接数据库失败,可能是mysql数据库用户名或密码错误"); } function selectdb($db) { @ mysql_select_db($db,$this->id) OR die("未找到指定数据库"); } function query($sql) { $query = @ mysql_query($sql,$this->id) OR die("SQL语句执行错误:$sql <br />".$this->geterror()); $this->query_num(); return $query; } function fetch_array($query) { $this->data = @mysql_fetch_array($query); return $this->data; } function query_num() { $this->query_num++; } function num_fields($query) { $this->fields = @mysql_num_fields($query); return $this->fields; } function fetch_row($query) { $this->row = @mysql_fetch_row($query); return $this->row; } function num_rows($query) { $this->row_num = @mysql_num_rows($query); return $this->row_num; } function insert_id() { $this->insertid = mysql_insert_id(); return $this->insertid; } function version() { $this->version = mysql_get_server_info(); return $this->version; } function fetch_one_array($sql) { $query = $this->query($sql); $this->data = $this->fetch_array($query); return $this->data; } function geterror() { return mysql_error(); } } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。