
设计模式
文章平均质量分 81
胡胜同学
游戏开发
展开
-
java设计模式(六)---装饰器模式
java设计模式(六)---装饰器模式一、概述:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。二、适用性:1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。2.处理那些可以撤消的职责。3.当不能采用生成子类的方法进行扩充时。三、组成:1.Component:定义一个对象接原创 2015-06-09 21:18:57 · 520 阅读 · 0 评论 -
java设计模式(三)---建造者模式
java设计模式(三)---建造者模式概述:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用性:1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2.当构造过程必须允许被构造的对象有不同的表示时。建造者模式通常包括下面几个角色:1. builder:给出一个抽象接口,以规范产品对象的各个组成原创 2015-06-03 10:17:49 · 540 阅读 · 0 评论 -
java设计模式(二)---单例模式
java设计模式(二)---单例模式一、单例模式(也叫单态模式)如果把Java的构造方法弄成private,那里面的成员属性是不是只有通过static来访问呢。如果构造方法是private的话,那么有什么好处呢。如果构造方法是private的话,会不更好的封装该类呢。这就是单例模式。构造函数弄成private 就是单例模式,即不想让别人用new 方法来创建多个对象,可以在类里面先生成一原创 2015-06-02 12:58:11 · 564 阅读 · 0 评论 -
java设计模式(一)---工厂模式
java设计模式(一)---工厂模式:一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式分为以下三种:1.简单工厂模式2.工厂方法模式3.抽象工厂模式下面进行分条说明:①简单工厂模式:定义:简单工厂模式特别简单,简单工厂模式用于:定义一个用于创建对象的接口。简单工厂模式中包含的角色及其相应的原创 2015-06-01 20:37:41 · 596 阅读 · 0 评论 -
设计模式之模板方法模式
设计模式之模板方法模式模式中的角色:抽象方法:一个抽象方法由抽象类声明,由具体子类实现。在Java语言里抽象方法以abstract关键字标示。具体方法:一个具体方法由抽象类声明并实现,而子类并不实现或置换。钩子方法:一个钩子方法由抽象类声明并实现,而子类会加以扩展。通常抽象类给出的实现是一个空实现,作为方法的默认实现。/// /// 抽象类 ///原创 2016-10-11 01:55:15 · 434 阅读 · 0 评论 -
设计模式之迪米特法则
设计模式之迪米特法则如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。1、在类的划分上,应当尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类造原创 2016-09-17 02:49:25 · 503 阅读 · 0 评论 -
设计模式之依赖倒置原则
设计模式之依赖倒置原则高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。依赖倒置原则是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。public class HondaCar{ public void Run(){原创 2016-09-04 18:23:14 · 471 阅读 · 0 评论 -
设计模式之里氏替换原则
设计模式之里氏替换原则继承的弊端:继承作为面向对象三大特性之一,在给程序设计带来巨大便利的同时,也带来了弊端。例如:1、继承是侵入性的。只要继承,就必须拥有父类的所有属性和方法。2、降低代码的灵活性。子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束。3、增强了耦合性。当父类的常量、变量和方法被修改时,必需要考虑子类的修改,而且在缺乏规范的环境下,这种修改可能带来非常糟原创 2016-09-04 17:07:04 · 506 阅读 · 0 评论 -
设计模式之单一职责原则
设计模式之单一职责原则遵循单一职责原的优点有:可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多。提高类的可读性,提高系统的可维护性。变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。class Animal{ public void breathe(String animal){ S原创 2016-09-04 03:47:57 · 472 阅读 · 0 评论 -
设计模式之接口隔离原则
设计模式之接口隔离原则定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。接口原创 2016-09-14 01:22:42 · 429 阅读 · 0 评论 -
java设计模式(四)---原型模式
java设计模式(四)---原型模式一、概述:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的。二、适用性:1.当一个系统应该独立于它的产品创建、构成和表示时。2.当要实例化的类是在运行时刻指定时,例如,原创 2015-06-08 15:52:55 · 521 阅读 · 0 评论 -
java设计模式(五)---适配器模式
java设计模式(五)---适配器模式一、概述:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、适用性:1.你想使用一个已经存在的类,而它的接口不符合你的需求。2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。3.(仅适用于对象原创 2015-06-08 16:14:22 · 495 阅读 · 0 评论 -
java设计模式(八)---外观模式
java设计模式(八)---外观模式一、概述:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。二、适用性:1、当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系原创 2015-06-12 17:37:28 · 511 阅读 · 0 评论 -
C#设计模式(2)简单工厂模式
C#设计模式(2)简单工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时。 public class Customer原创 2015-07-26 04:24:25 · 621 阅读 · 0 评论 -
C#设计模式(1)单例模式
C#设计模式(1)单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。 public class Singleton { // 定义一个静态变量来保存类的实例原创 2015-07-26 04:19:46 · 596 阅读 · 0 评论 -
C#设计模式(3)建造者模式
C#设计模式(3)建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。using System;using System.Collections.Generic;using System.Linq;using Sys原创 2015-07-26 04:33:22 · 631 阅读 · 0 评论 -
java设计模式(七)---代理模式
java设计模式(七)---代理模式①概述:为其他对象提供一种代理以控制对这个对象的访问。②适用性:1、远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。2、虚代理(VirtualProxy)根据需要创建开销很大的对象。3、保护代理(ProtectionProxy)控制对原始对象的访问。4、智能指引(SmartReference)取代原创 2015-06-11 23:17:26 · 512 阅读 · 0 评论