![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 90
寸人
成也己,败也己。
展开
-
Abstract Factory(抽象工厂)
Abstract Factory(抽象工厂)是创建模式中的一种设计模式,不直接通过对象的具体实现类,而是通过使用专门的类来负责一组相关联的对象的创建。应用场景:您只想暴露对象的接口而不想暴露具体的实现类,但是又想提供实例化对象的接口给用户;或者,您希望所有的对象能够集中在一个或一组类(通常称作工厂类)来创建,从而可以更方便的对对象的实例化过程进行动态配置(此时只需要修改工厂类的代码或配置)原创 2014-08-25 17:22:39 · 452 阅读 · 0 评论 -
Flyweight(享元模式)
Flyweight(享元模式),其主要思想是运用共享技术有效地支持大量细粒度的对象。 也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说(这里引用GOF书中的例子)一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么原创 2014-08-30 21:12:01 · 393 阅读 · 0 评论 -
Facade(外观模式)
Façade模式的主要思想为子系统中的一组接口提供一个一致的界面,这个接口使得这一子系统更加容易使用。应用场景引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让它们仅通过Facade进行通讯,从而简化了它们之间的依赖关系。1....原创 2014-08-30 15:21:12 · 878 阅读 · 0 评论 -
Composite(组合模式)
Composite模式,有时候又叫做部分-整体模式,是将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。应用场景组合模式让你可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。关于分级数据结构的一个普遍性的例子是你每次使用电脑时所遇到的文件系统。文件系统由目录和文件组成。每个目录都可以装内容。目录的内容可原创 2014-08-28 15:47:49 · 802 阅读 · 0 评论 -
Decorator(装饰模式)
Decorator模式的主要思想是为一个对象已有的子类添加一些额外的职责。与生成子类相比,它更具有灵活性。应用场景该模式的使用场景,主要是有的时候我们不愿意定义逻辑上新的子类,因为没有新的逻辑含义上的子类概念,而只是想为一个已存在的子类附加一些职责。1)需要扩展一个类的功能,或给一个类增加附加责任。2)需要动态地给一个对象增加功能,这些功能可以再动态地撤销。3)需要增加由一些基原创 2014-08-28 16:49:14 · 400 阅读 · 0 评论 -
Bridge(桥接模式)
Bridge模式的用意是“将抽象化(Abstraction)与实现化(Implementation)解耦,使得二者可以独立地变化”。应用场景在以下的场景下应当使用桥梁模式:(1)如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。(2)设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。(3原创 2014-08-27 15:46:28 · 683 阅读 · 0 评论 -
Adapter(适配器模式)
Adapter设计模式的主要思想是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要就是起一个转换器的作用,目的就是复用原来的功能,说白了就是让两个接口匹配起来。应用场景该模式的应用场景太多了,很多需要的功能模块的接口和我们需要的不完全一致或者有多余或不足,但是需要和我们的系统协同工作,通过Adapter把它包装一下就能使它接口兼容了。平时我们原创 2014-08-27 11:02:23 · 406 阅读 · 0 评论 -
Prototype(原型模式)
原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。(克隆一个已有的类的实例)。应用场景当我们已经拥有某个得来不易的宝贝时,往往我们会很想再“变”一些出来,即这个宝贝的“复制品”,这种方式简单又理想,谁都想要学会这项本事。不可能的事情!不过,这种手段在软件设计中是完全可以实现的,在OO中的原型模式就是这样基于思想的。原型模式的适用场景:(摘录原创 2014-08-26 17:05:37 · 525 阅读 · 0 评论 -
Builder(生成器模式)
Builder是创建模式的一种设计模式,它的思想是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。应用场景在以下情况使用Build模式:1) 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2) 当构造过程必须允许被构造的对象有不同的表示时。3) Builder模式要解决的也正是这样的问题:当我们要创建的对象很复杂的时候原创 2014-08-26 15:48:05 · 790 阅读 · 0 评论 -
(工厂方法模式)Factory Method
Factory Method是创建 的主要思想是使一个类的实例化延迟到其子类。原创 2014-08-25 15:06:14 · 565 阅读 · 0 评论 -
Proxy(代理模式)
Proxy模式,为其他对象提供一种代理,并以控制对这个对象的访问。(Provide asurrogate or placeholder foranother objecttocontrol access to it. )而对一个对象进行访问控制的一个原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化。它是给某一个对象提供一个替代者(占位者),使之在client对象和subject对象原创 2014-08-31 11:13:47 · 857 阅读 · 0 评论