基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。
举个典型的面向过程的例子, 数据库备份, 分三步,连接数据库,备份数据库,测试备份文件可用性。
1 def db_conn(): 2 print("connecting db...") 3 4 5 def db_backup(dbname): 6 print("导出数据库...",dbname) 7 print("将备份文件打包,移至相应目录...") 8 9 def db_backup_test(): 10 print("将备份文件导入测试库,看导入是否成功") 11 12 13 def main(): 14 db_conn() 15 db_backup('my_db') 16 db_backup_test() 17 18 19 20 if __name__ == '__main__': 21 main()
![](https://i-blog.csdnimg.cn/blog_migrate/cb9ad4a9f6ee9ee6e615464f755393f7.png)
总结:
类-----> 是对一类拥有相同属性的事物的抽象或者说模板。比如说 人类
对象---> 是一个类的实例化后的产物,一个类可以造(实例化)多个对象,但每个对象亦可以有不同的属性。就像每个人是具体的对象,但人与人之间有共性,亦有不同1 class Human{ 2 3 }
所以,我们想想,
我们人类都有什么? (体重,身高,姓名...)--> 属性
都能干什么? (哭,笑,打招呼,吃饭...)--->方法
在面向对象中,我们使用“变量”模拟属性,使用“函数”模拟方法功能
1 class { 2 // 属性 3 public $name = "nobody"; 4 public $height = 30; 5 6 // 方法 7 public function say(){ 8 echo "hello world"; 9 } 10 }
2.再由类创造人的对象,可以创建N个
1 class Human{ 2 # 属性 3 public $name = "nobody"; 4 public $weight = 30; 5 ..... 6 7 # 方法 8 public function say(){ 9 echo "hello world"; 10 } 11 ...... 12 } 13 $zhangsan = new Human(); 14 $lisi = new Human(); 15 .......
我们可以把$zhangsan当成一个箱子,里面装了N多的属性和方法,$zhangsan = {"name":'nobody','height':30}
那我们来看,如果我们想要获取name属性值,我们应该怎么办?
1 class Human{ 2 # 属性 3 public $name = "nobody"; 4 public $weight = 30; 5 ..... 6 7 # 方法 8 public function say(){ 9 echo "hello world"; 10 } 11 ...... 12 } 13 $zahngsan = new Human(); 14 15 #获取name的值 16 echo "name:",$zhangsan->name; 17 .......
3.如何选择面向对象还是面向过程,对于一个有着丰富开发经验的老手来说,这是个得心应手的过程。而对于一个新手而言,其实从两者的对比就可以看出,当我们的业务逻辑比较简单时,使用面向过程能更快的实现。但是当我们的业务逻辑比较复杂时,为了将来的维护和扩展,还是面向对象更为靠谱点!当然,当我们被经理催着上交项目时,不要再选择纠结了,哪个能让你更快的完成项目就用哪个吧!