设计模式
BeautifulSoup2019
万事起于忽微,量变引起质变
展开
-
单例模式
单例模式通俗的说就是在一个应用程序中某一个类的对象是唯一的,无论在哪里操作这个对象都是操作的同一个对象。本篇不仅介绍关于单例模式的两种类型,而且介绍实际开发中常使用的具体实现方法。单例模式分成两种类型,分别是饿汉模式和懒汉模式。饿汉模式饿汉模式是创建了一个静态对象并且直接提供到外部。 由于静态对象是在类加载的时候就创建了,并不一定是在使用的时候才创建,所以称之为饿汉模式。/** * @autho原创 2017-01-18 19:59:55 · 345 阅读 · 0 评论 -
工厂模式
创建对象的常见方式就是使用new操作符,然而通过new操作符来实例化对象是典型的针对实现编程。典型的使用接口来接受实例化对象的代码如下:Fruit fruit=new Apple();像这样公开进行实例化对象的过程正是产生程序耦合的重要原因之一。然而创建对象的过程却不仅仅只有使用new操作符这一种,使用工厂模式能够实现在实例化对象的过程中解耦。工厂模式又分为三种实现方式,分别是:简单工厂模式、工厂方原创 2017-01-19 16:38:53 · 762 阅读 · 0 评论 -
责任链模式
责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。责任链模式的角色: 抽象处理者(Handler)角色:定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和原创 2017-01-21 17:48:01 · 326 阅读 · 0 评论 -
模板方法模式
首先介绍一下模板方法模式中的有关概念,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。将主要的方法定义为final,防止子类修改算法骨架,将子类必须实现的方法定义为abstract。而普通的方法(无final或abstract修饰)则称之为钩子。模板方法模式中突出的特点就是,在抽象基类中存在常函数规定方法执行流程模板(原创 2017-01-23 00:40:44 · 289 阅读 · 0 评论 -
代理模式
代理设计模式(Proxy Pattern),为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式中涉及的角色:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色原创 2017-01-23 13:59:41 · 323 阅读 · 0 评论 -
装饰者模式
首先介绍一下定义: 装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。定义是比较晦涩的,简而言之,由于多重继承导致我们的业务代码越来越臃肿,我们可以使用装饰者模式来动态的为我们的实际业务代码提供装饰,在增强我们的代码的同时降低了复杂性。比如Java中的IO操作中使用了很多的装饰者模式,细细想来还是十分精妙的,典型的如:原创 2017-03-03 21:27:56 · 445 阅读 · 0 评论