![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
LoveMollyWendy
这个作者很懒,什么都没留下…
展开
-
设计模式专题
设计模式对于程序员来说是很重要的,它就像一个武器库,在不同的场景中,你可以从这个武器库里挑选自己得心应手的兵器,获得不同的buff加成。哈哈,好的设计模式是让自己在开发中得心应手,不是为了套用某个模式而选择一些很奇怪的做法。一句话概括下就是,“设计模式是为了更好的服务项目,而不是限制项目,如果你觉得没必要,当然可以不适用”。每个人都有自己的理解,千篇一律的不一定就是真理,但是千篇一律至少能给我们提供原创 2017-05-12 18:35:19 · 770 阅读 · 0 评论 -
2.工厂方法模式
工程方法模式和简单工程合并成同一个模式,所以标题都用2了。。。不要在意这些细节介绍简单工厂模式的缺点很明显,简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,工厂方法模式可以解决简单工厂模式中存在的这个问题。核心要点“一个工场只能生产单个东西。”工厂接口,实现不同的工厂把具体产品的创建推迟到子类中,此时工厂类不再负责所有产品的创建,而只是给出具原创 2017-05-22 12:09:51 · 741 阅读 · 0 评论 -
7.桥接模式
介绍在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?核心要点“将抽象部分与实现部分分离,使它们都可以独立的变化”例子using System;using System.Collections.Generic;using System.Linq;using原创 2017-06-06 11:09:51 · 432 阅读 · 0 评论 -
6.适配器模式
介绍由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。核心要点“把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作”例原创 2017-06-06 11:09:08 · 413 阅读 · 0 评论 -
5.原型模式
介绍当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导致子类的数量不断增多,反而增加了系统复杂程度,所以在这里使用工厂模式来封装类创建过程并不合适,然而原型模式可以很好地解决这原创 2017-06-05 12:10:09 · 423 阅读 · 0 评论 -
4.建造者模式
介绍在软件系统中,有时候面临一个”复杂对象”的创建工作,其通常由各个部分的子对象用一定算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合到一起的算法却相对稳定。如何应对种变化呢?如何提供一种”封装机制”来隔离出”复杂对象的各个部分”的变化,从而保持系统中的”稳定构建算法”不随需求的改变而改变?核心要点“将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建原创 2017-06-05 12:09:30 · 527 阅读 · 0 评论 -
2.简单工厂
使用环境某个对象具有类似的功能,比方说饭馆、汽车厂等等简单例子//基类 线条class Line{ public string Name { get; set; }} //带箭头的线条 class ArrowLine:Line { public ArrowLine() {原创 2017-05-18 18:08:32 · 680 阅读 · 0 评论 -
1.单例模式
使用环境 某个对象只需要一个实例的情况,比方说GameManager,ResourceManager简单例子 using System; namespace 单例模式 { class Singleton { // 定义一个静态变量来保存类的实例 private static Singleton原创 2017-05-18 15:32:21 · 680 阅读 · 0 评论 -
设计模式的六大原则
想要学好设计模式,先得了解设计模式的六大原则.单一职责原则这个原则简答,但是也是最易忽略的。说白点就是,一个类只负责一项职责,一个函数只负责一个功能,尽量降低对其他功能的影响。里氏原则这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。使用继承时,遵循里氏替换原则。 里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含原创 2017-05-12 18:35:55 · 837 阅读 · 0 评论 -
3.抽象工厂模式
介绍工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码,而工厂方法模式每个具体工厂类只完成单个实例的创建,具有很好的可扩展性。但是在现实生活中,一个工厂只创建单个产品这样的例子很少,因为现在的工厂都多元化了,一个工厂创建一系列的产品,如果我们要设计这样的系统时,工厂方法模式显然在这里不适用,然后抽象工厂模式却可以很好地解决一系列产品创建的问题原创 2017-05-22 12:10:40 · 617 阅读 · 1 评论