设计模式
煜~城
对工作负责就是对自己负责。贯彻技术在手,天下我有的真理
展开
-
设计模式的七大原则
设计模式的目的:在编写软件的过程中,程序员面临着来之耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式的好处是为了让程序具有如下特点:代码重用性(即:相同功能的代码,不用多次编写) 可读性(即:程序规范性,便于其他程序员的阅读和理解) 可扩展性(即:当需要增加新的功能时,非常的方便) 可靠性(即:我们对程序增加新的功能的时候,对原来的功能没有影响) 可维护性(即:我们转让项目的时候,别人能很快的上手自己的项目) 最终目的是使程序呈现高内聚,低耦合的特性。设计模式的七原创 2020-08-31 23:33:13 · 394 阅读 · 0 评论 -
设计模式之代理模式
代理模式的基本介绍:代理模式:为一个对象提供一个替身,以控制这个对象的访问。即通过代理对象访问目标对象,这样做的好处是可以在目标对象实现的基础上,增强额外功能的操作,即扩展目标对象的功能。 被代理的对象可以是远程对象,创建开销大的对象或需要安全控制的对象。 代理模式由不同的形式,主要有三种静态代理、动态代理(JDK代理,接口代理)、Cglib代理(可以在内存动态的创建对象,而不需要实现接口,属于动态代理的一种)。 代理模式示意图:静态代理:静态代理在使用时,需要定义接口或者父类,被代理对象(原创 2020-08-30 21:47:39 · 120 阅读 · 0 评论 -
设计模式之享元模式
需求,一个给A客户做的前台展示的外包项目,客户B看了之后觉得不错耶想给自己公司做一个类似的网址网址,但是有的部分需求不一致,A客户端需要信息已新闻的形式发布,B客户希望以公众号的形式发布需求,但是后台的功能大致一样。需要我们改进改项目,如果我们直接复制A项目来进行更改,更改的内容不算多。更改完毕之后需要部署到同一个服务器,对应的增加了服务器的压力,相同的类实列化对象更多,这样变相的耗费系统的资源。如果我们在一份代码里面更改,增加对于不同的请求路径,发布的时候以不同的域名来发布,这样就可以大大的节省服务器的空原创 2020-08-30 17:19:00 · 159 阅读 · 1 评论 -
设计模式之组合模式
需求:在一个页面展示学校下面的学院,学院下面所有的专业信息。如果我们按时学校->学院->专业这样一层一层的划分,然后分别写出对应的类信息,这样写出来的代码类比较多且大,而且也不能很好的展示学校的新,如果我们把这样结构划分为一棵树结果,学校是根节点,然后一层一层的划分,最下面的专业是叶子节点,这样我们就能很友好的管理树信息。====》组合模式来解决该问题。组合模式:组合模式又叫部分和整体的模式,他创建对象组的树形结构,将对象组合树形结构已整体-部分的层次关系来展示。组合模式依据树形原创 2020-08-30 16:06:03 · 105 阅读 · 0 评论 -
设计模式之装饰者模式
由咖啡订单项目项目来分析装饰者模式模式的好处:1、单点咖啡,咖啡的种类有黑咖啡,无因咖啡,意大利咖啡,纯咖啡。2、咖啡的调料有多种,有巧克力,牛奶,奶茶等调料。3、我们如果单点咖啡,这样的订单很简单,如果需要加巧克力,则需要咖啡+巧克力,如果另外的订单是咖啡+巧克力+牛奶。4、如果是这样的设计模式,我们的组合模式由多种,这样设计下来我们的类非常大,增加一个咖啡种类就会增加对象的调料类,这样无限制的增加会类保证。装饰者模式:动态的的将新功能附加到对象上。在对象功能扩展方面,它比继承更具原创 2020-08-30 15:12:02 · 153 阅读 · 0 评论 -
设计模式之桥接模式
通过手机的设计模式来引出桥接模式,现在不同的手机有不用的品牌,但是功能都是类似的,而且手机有不同的样式,比如折叠手机,直立手机,如果我们我们要生产一款直立的华为手机,一款折叠的华为手机,各个品牌和样式相互组合会变成类爆炸。显然这样的设计肯定不友好,代码量非常大而且非常难以维护,我们需要增加一个样式的时候对于的类也需要改变,显然违背了单一职责原则,如果我们用桥接模式可以很友好的解决此问题。桥接模式:将实现和抽象放在两个不同的类层次中,使两个层次可以独立改变,桥接模式是一种结构型设计模式。桥接模式基原创 2020-08-28 15:29:28 · 104 阅读 · 0 评论 -
设计模式之建造者模式
1、建造者模式又叫生成器模式,是一种对象构建模式,它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构建出不同的表现(属性)的对象。2、建造者模式是一步一步创建一个复杂对象,它允许用户只通过指定复杂对象的类型和内容就可以构建他们,用户不需要知道内部的具体构建细节。构建中的四个角色:Product(产品角色):一个具体的产品对象。 Buider(抽象建造者):创建一个Product对象的各个部件指定的接口/抽象类。 ConcreteBuilder(具体建造者):实现接口,构建原创 2020-08-28 10:23:04 · 117 阅读 · 0 评论 -
设计模式之原型模式
原型模式:指定创建对象的种类,并且通过拷贝这些原型来创建新的对象,原型模式是一种创建型的设计模式,允许一个对象再创建另外一个可定制的对象,无需知道创建的细节。工作原理:通过一个原型对象传给那个要创建的对象,这个要创建的对象通过请求原型对象拷贝他们自己来实施创建,即对象.clone()。原理图形:原理图结构说明:Prototype:原型类,声明一个克隆自己的接口。ConcretePrototype:具体的原型类,实现一个克隆自己的操作。Client:让一个原型对象来克隆自己,从而创原创 2020-08-28 09:27:27 · 94 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。1、简单工厂模式属于创建型模式,是工厂模式的一种,简单工厂模式由一个工厂对象创建出哪一种产品的实列,简单工厂模式是工厂模式里面最简单实用的模式。在简单工厂模式里面定义了一个创建对象的类,由这个类来封装实例化对象的行为。我们通过制作手机的代码演示简单工厂模式: 1、定义制作手机规范: /** * 定义制作手机的规范 * @autho..原创 2020-08-10 17:46:39 · 171 阅读 · 0 评论 -
设计模式之单列模式
单列模式:采用一定的方法保证整个软件系统中,对某个类只能存在一个实列,并且该实列只提供一个取到该对象实例的方法,该方法为静态方法。单列模式常见的几种写法以及其优缺点:1、饿汉式(静态常量) public class SingletonTest1 { public static void main(String[] args) { SingleTonDemo1 instance = SingleTonDemo1.getInstance(); ...原创 2020-08-10 17:01:48 · 214 阅读 · 0 评论