设计模式
文章平均质量分 83
宿罪
人没有梦想和咸鱼有什么区别,有梦就要去追,不为失败找借口,只为成功找方法。
展开
-
面向对象的设计模式(三),原型模式
前言 面向对象中的另外一个设计模式是原型(prototype)模式,这种模式使用非常简单,使用的场合不是很多,所以不是很常用。定义:将一个对象实例设为原型,通过clone该原型实例得到新的一个实例,而不是通过new得到原型对象实例,这点java和C++的对象拷贝是一样的。适用场景: 1、提升对象创建的效率。如果一个对象的创建比较复杂,需要消耗很长的时间才能完成该对象的创建,那么这个时候使用原型模式比原创 2015-12-28 15:35:31 · 5451 阅读 · 1 评论 -
面向对象的设计模式(十三),解释器模式
解释器模式,从字面上解释来说就是为一个文法(具有特定语法的形式的语句或表达式)构造解释器,这个解释器用来解释这个文法,使得这种具有某种书写规则的文法能够表示特定的功能,这种特定书写规则也就是通常所说的语法,如C/C++,Java,Python等计算机语言有自己的语法。还有,一些解释型语言如Python,它在运行的时候需要Python解释器,这也就是一种解释器。定义:解释器模式为一些具有特定书写规则的原创 2016-01-11 16:26:50 · 1904 阅读 · 2 评论 -
面向对象的设计模式(十二),外观模式
终于考试完了,瞬间感觉轻松了许多,又可以安心地写代码了,下面进入今天的正题–外观模式。 外观模式,也称门面模式,顾名思义,就是一个对象封装了一系列相关的操作(行为),使得这些操作仅对外提供(暴露)方法(接口),客户端根据这些外观(暴露的接口)就可以简单地完成一系列操作,达到了客户端无需知道内部实现细节,只需知道对象的外观就可以实现一系列行为,简单来说就是面向对象的封装。这一系列行为也就是一个系统原创 2016-01-09 10:09:59 · 1718 阅读 · 0 评论 -
面向对象的设计模式(十一),装饰模式
装饰模式(包装模式),也是结构型设计模式之一。它主要用于动态地对一个类或者对象添加新的功能,使得原有的类得到扩展,与代理模式不同的是该模式是直接对一个原有的对象进行扩展功能,而代理模式代理原对象的行为,而不是对原来的对象进行扩展。同时也不同于适配器模式,适配器模式是对一个接口或者类进行适配,使得在新的场合下也可以使用。而装饰模式则是对对象进行扩展包装,是继承关系的代替方案。但比继承的子类更加灵活,因原创 2016-01-05 20:15:08 · 5325 阅读 · 0 评论 -
面向对象的设计模式(十),代理模式
代理模式也称委托模式,是结构型设计模式之一,在实际应用中使用非常广泛,因此我们必须掌握这个设计模式。定义:为一个对象提供一个代理对象,通过这个代理对象控制这个对象的行为。使用场景:直接访问或者控制对象的行为困难的时候,可以通过对象的代理对象间接控制对象的行为,为了使用简单透明,委托对象和代理对象需要实现相同的接口,即同类型,使用方法一样。可以一定程度上保证对象的安全性。即不必直接将对象暴露给客户原创 2016-01-04 16:44:31 · 12916 阅读 · 0 评论 -
面向对象的设计模式(四),工厂方法模式
相关概念:定义:工厂方法模式(FACTORY METHOD)是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品。抽象工厂(Creator):是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。原创 2015-12-29 16:35:25 · 4740 阅读 · 2 评论 -
面向对象的设计模式(九),适配器模式
记得刚学Java SE的AWT(新版Swing)编程的时候,那个时候自己特别兴奋,因为学了那么久的Java了,没看到一点实在点的东西,觉得很没有成就感。后来学到Swing的时候,用它编写图形化界面,于是写了一个小小的计算器和其他简单的图形化程序。然而,在知道了Java的在图形化界面方面做的不是很好以后,心里有点失望,于是对Swing的热情也慢慢消退了。但是,我并不后悔花了点时间学Swing编程,因为原创 2016-01-03 14:38:35 · 13913 阅读 · 0 评论 -
面向对象的设计模式(八),责任链模式
废话不多说,最近要期末考试了,还没预习呢,下面直接进入正题。定义:定义多个可以处理请求(承担责任)的类,并将它们连成一条链,沿着该链向下传递请求(责任),直到有能力解决问题(承担责任)的类处理之。这使得它们都有机会(看能力大小咯)处理请求。使用场景:一个请求有多个类可以处理,但具体由那个类处理要在运行时刻确定;在请求不知道由谁来处理的时候,可以沿着责任链传递请求;需要动态指定一组对象处理请求。原创 2016-01-02 16:44:01 · 14369 阅读 · 5 评论 -
面向对象的设计模式(七),观察者模式
似乎所有的设计模式都是为了使得程序具有低耦合,灵活性高,可扩展性好,程序结构清晰等等。今天的这个设计模式—观察者模式自然也不例外,但程序结构清晰可能就不是重点了。好吧,废话少说,模式这种简单粗暴的东西还是要快点学习,下面直接进入正题。定义:观察者模式是让对象与对象之前建立一种一对多(不是Bean之前的一对多)的关系,这种关系使得当一的一方的状态改变时,所有多的一方自动根据一的一方的改变做出相应的改变原创 2016-01-01 09:44:17 · 6727 阅读 · 0 评论 -
面向对象的设计模式(六),状态模式
我们是否在写程序的过程中有过在一个类中写了很多状态,是否需要根据该对象的不同状态决定该对象的不同行为的可用性,如:我们Android中自定义一个上拉加载更多,下拉刷新的PullRefreshListView呢?,我们在RefreshListView中定义了三中状态,即:下拉刷新状态,正在刷新,松开刷新,而且这三中不同的状态决定了该自定义控件是否可以下拉等行为,假如你没定义过该控件或者没有写个那种一个原创 2015-12-31 13:52:02 · 7736 阅读 · 3 评论 -
面向对象的设计模式(五),策略模式
策略模式,顾名思义,就是在一个问题有多种解决方法的时候应用哪种方法,哪种策略来完成而设计的一种模式,以达到高解耦,灵活性高,代码更加清晰明了。策略模式又是一种面向对象的设计模式,说白了,所有的这些模式的出现都是为了使程序或者代码结构更加清晰,易于理解,降低耦合性,提高灵活性以使代码更加容易扩展等等。定义:策略模式定义了一系列算法,并将每个算法封装起来,而且使得它们可以相互替换,策略模式让算法和使用它原创 2015-12-30 14:13:36 · 7543 阅读 · 1 评论 -
面向对象的设计模式(一),单例模式
前言 面向对象语言具有封装,继承,多态等三个特性,同时,面向对象语言通常有好多种设计模式,这些设计模式在面向对象语言中是相通的,java是一种面向对象的语言,使用java语言作为开发语言的Android的源码中大量运用了设计模式。单例模式是应用最为广泛而且最为简单的一种设计模式。单例模式:在任何时刻保证单例对象只存在一个实例,这个实例对象服务于整个系统,如:一个公司只有一个CEO,一个国家只有一个主原创 2015-12-18 08:59:30 · 11656 阅读 · 1 评论 -
面向对象的设计模式(二),Builder模式
前言 Builder(构造者)模式也是一种常用的设计模式,它是用来一步一步构建复杂事物而设计的模式,使用这种模式可以使得复杂事物的构建与展示相分离,具有降低耦合,向外部隐藏复杂事物的构建过程等优点。Builder模式的实现以生产汽车为例展示Builder模式的过程。我们知道汽车有很多零件,什么方向盘,发动机,轮子等等,同时它还有一个属性,如:名称,价格,级别等。这些都要汽车生产商来完成,那么汽车生产原创 2015-12-27 21:29:44 · 7693 阅读 · 1 评论 -
面向对象的六大原则
一、 单一职责原则 正如字面上所说,这一原则体现在“单一”二字,描述的是一个类的职责应该是单一的,与该类无关的功能或者完全不一样的功能不应该出现在该类中,而需要将该类所具有的功能独立出来。而这个类中仅有的是一组相关性很高的函数,数据的封装。原创 2017-08-10 16:27:15 · 289 阅读 · 0 评论