
设计模式
u014695894
这个作者很懒,什么都没留下…
展开
-
设计模式-面向对象和面向过程
何为面向对象,何为面向过程。相信大家在大学计算机课程的时候,老师都会讲,C语言是面向过程的语言,而JAVA是面向对象的语言,甚至将JAVA列为高级编程语言,C语言是基础编程语言。那么,为什么是这样呢,难道仅仅是因为C里面没有关键字CLASS,而JAVA里面都是将代码写在CLASS里面吗。我想显然不是这样,在代码的领域,不可否认CLASS是面向对象的标识之一,但有CLASS就是面向对象的编程吗,而没...原创 2018-12-19 18:46:57 · 894 阅读 · 0 评论 -
创建型模式->工厂模式(Factory Pattern)
意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。应用实例: 1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里...转载 2018-12-19 18:53:34 · 201 阅读 · 0 评论 -
设计模式->插入个论点:先设计后开发还是先开发后重构
先设计后开发还是先开发后重构,一直是有争论的,不同人有不同的观点,相信大家都是折中的观点,先设计代码,然后开发,等代码到了一定的程度再重构。现实中也是这样的。但是如果我们要钻牛角尖呢,该如何。比如写PHP ,是先了解计算机理论,先了解数据结构、网络、HTTP协议,搞的滚瓜烂熟,再写代码。还是上来就是干,先写例子,再学习基础理论呢,比如闻名世界的先写“hello world!”。大学教授和辅导班就给...原创 2018-12-19 18:52:42 · 2164 阅读 · 1 评论 -
设计模式->设计模式总结
三大类型设计模式,概念先摆出来(是不是可以理解在设计模式基础上又抽象了一把呢,厉害吧)创建型模式:核心在对象如何创建什么在代码里面使用new,low不low,是不是有人常说不要再代码里面创建对象,要使用依赖注入或者控制反转。换成白话就是不要在代码里面用new。程序需要什么对象的时候,创建一个对象给他,注入给他,而不是在程序里面new。还是那个例子,弟弟要学习了,要一个教学器,怎么办,在...原创 2018-12-19 18:52:14 · 157 阅读 · 0 评论 -
设计模式->前言
咚咚咚,进入正题了,等久了吗,前面是废话吗,当然不是,前面才是核心,是我要讲的内功心法,设计模式只是招数。有道是无招胜有招。高中的时候,老师总是说,这几个点掌握了,各种题型就会了,这几个点就是内功心法,就是笑傲江湖中,气宗的那下半本葵花宝典,而招数是剑宗那上半本葵花宝典。最好的境界是内外兼修,如东方不败,实在不行,是先练心法,还是招数,人各有志啦。在面向对象领域,SOLID原则是心法,设计模式是招...原创 2018-12-19 18:50:04 · 122 阅读 · 0 评论 -
设计模式->面向对象的抽象原则 SOLID
SOLID原则,神马固体原则,当然不是。这是缩写合成的词语,会此原则,就不用学习设计模式了,这个是心法,真正的无招胜有招的境界。当然我们都没有达到那个层次,还是要学学招数(套路)这个招数就是设计模式,废话不说,我们来说基础原则S:SRP The Single Responsibility Principle 单一责任原则一个类干一类事情,或者承担一种类型的责任(有的概念是一个类封装了一种...原创 2018-12-19 18:49:37 · 334 阅读 · 0 评论 -
设计模式->如何抽象出对象
这里说对象,而不说类,是因为我们总是先发现了对象,然后抽象出类的。绝不是相反的,不然很别扭,很不符合认知习惯。你要教你小孩鸟类这个概念你总不会说世界一种鸟类,有翅膀、有羽毛,会飞。看这就是鸟。你想你小孩会怎样,一脸蒙逼,但是你拿个模型呢,或者去宠物市场呢,看到一只鸟,再和你小孩讲解鸟类就容易很多。那么两者的关系呢,个人理解从对象抽象出类,从类具象化为对象。在代码层面上先发现对象,然后定义类,然...原创 2018-12-19 18:49:05 · 976 阅读 · 0 评论 -
设计模式->面向对象的本质
面向对象的本质,我认为是抽象。抽象是一种伟大的能力,是人类智慧的体现。万千事务,如何组织,如何理解。就需要抽象。看到一只鹦鹉,发现它会飞、有翅膀,有羽毛,发现一只鸽子发现它也会飞,也有羽毛也有翅膀,这是一类事务,于是鸟类的概念生成了。这种伟大的能力有的是前人做好的,我们在此基础上减少了认知世界的能力。可以说,我们学习的所有过程,都是抽象,数学抽象出了各个定律、物理抽象除了各个定理、化学抽象出各个公...原创 2018-12-19 18:48:37 · 229 阅读 · 0 评论 -
设计模式->面向对象的特点
面向对象的特点,封装、继承、多态,这三个特点也是为了解决面向过程的三个问题而来的,具体如下:第一个就是作用域的问题这个就是面向对象的封装。例如表达一个复杂的作用域,如何表示呢,这方面面向过程早就想过了,用结构体,当然结构体能够胜任部分需求,但是结构体只能表示属性没法表示方法。那门如何表示方法呢,向前在走一步,将方法和属性一起分装起来,这个就有个插曲,有个小分支就是JS,将这些都封装到构造函...原创 2018-12-19 18:48:09 · 237 阅读 · 0 评论 -
设计模式->从面向对象到面向过程
如果让大家解释下,如何从面向过程到面向对象的发展过程的,大家会如何讲解呢,我想大家肯定会说面向对象是从面向过程中发展来的,举个例子就是JAVA是从C发展来的,什么不够形象,那门C++是从C发展而来的呢。那么还有呢,大部分人会顺便说下编程语言的发展史。那么编程语言是如何来的呢。第一个编程语言是二进制的编程语言什么时候来着,大家自己查,反正我记不住了,当然不是为了写WEB页面而发展来的,这...原创 2018-12-19 18:47:38 · 589 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory Pattern)
意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。如何解决:在一个产品族里面,定义多个产品。关键代码:在一个工厂里聚合多个同类产品。 优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。缺点:产品族扩...原创 2019-01-25 08:51:04 · 291 阅读 · 0 评论