
设计模式
文章平均质量分 72
23种软件设计模式
na_tion
601194865@qq.com
展开
-
设计模式--04--结构型--04--外观模式及与代理的区别
外观模式及与代理的区别转载 2023-01-04 15:41:03 · 215 阅读 · 0 评论 -
设计模式--03--创建型--03--建造者模式
建造者模式为:过程相同、表示不同。以盖房子为例:1、盖房子的过程都为:打地基--》砌墙--》封顶;2、但是改的房子有:平房、楼房等建造者模式用于创建复杂对象,将复杂对象分解为一步一步实现...原创 2022-03-29 01:11:32 · 174 阅读 · 0 评论 -
设计模式--04--结构型--03--装饰模式
一、装饰模式引入例子一个快餐店计算价格问题举例:快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,加配菜需要额外加钱,并且每个配菜的价钱不一样,计算快餐价格如何实现?1.1 一般设计1.2 使用继承方式的一般设计存在的问题:横向扩展性不好:如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和FriedNoodles分别定义一个子类。如果要新增一个快餐品类(炒河粉)的话,就需要定义更多的子,会出现类爆炸的问题。继承适合于纵向扩展二、装饰模式原创 2021-04-28 19:53:53 · 134 阅读 · 0 评论 -
设计模式--05--行为型--模板模式、策略模式、观察者模式
一、模板模式模板模式定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。举例1:去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。举例2:抽象类中进行一个方法实现(模板),相同的代码就在该方法中实现,而对该方法的不同细节原创 2021-04-24 19:17:59 · 166 阅读 · 0 评论 -
设计模式--04--结构型--02--适配器、享元、桥接
一、适配器没有加一层是解决不了的举例:泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用三孔的了。原创 2021-04-19 11:34:21 · 120 阅读 · 0 评论 -
设计模式--03--创建型--02--工厂模式
在篇介绍三种工厂的使用简单工厂模式(不属于GOF的23种经典设计模式,实际开发中经常使用,故也作介绍) 工厂方法模式 抽象工厂模式工厂模式最大的优点是解耦以案例引入工厂模式--设计一个咖啡店点餐系统设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。一、传统方式设计源码地址:https://gitee.com/na-tion/d原创 2021-04-14 22:26:12 · 263 阅读 · 0 评论 -
设计模式--03--创建型--01--单例
一、单例what--单例模式保证了系统内存中该类只存在一个对象 how--核心步骤是构造函数私有化 why--节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。 单例模式使用的场景:需要频繁的进行创建和销毁的对象;创建对象时耗时过多或耗费资源过多(即:重量级对象),但又经常用到的对象、工具类对象;频繁访问数据库或文件的对象(比如数据源、session 工厂等)1.1 饿汉--静态常量//饿汉式(静态常量)class Sing...原创 2021-04-14 14:57:41 · 156 阅读 · 0 评论 -
设计模式--04--结构型--01--代理模式
一、适配器没有加一层是解决不了的举例:泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用三孔的了。原创 2021-04-14 14:58:12 · 130 阅读 · 0 评论 -
设计模式--02--七大设计原则
一、单一职责对类来说,一个类应该只负责一项职责如果A类负责两个不同职责:职责1,职责2.当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2 通常情况下,应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有在类中的方法数量足够少,可以在方法级别保持单一职责原则二、开闭原则对扩展开放,对修改关闭在程序需要进行扩展的时候,不去修改原有的代码,而是实现一个热插拔的效果。简言之,我们使用--接口和实现--因为抽象类灵活性好,适应原创 2021-04-13 22:01:50 · 130 阅读 · 0 评论 -
设计模式--01--介绍及UML
一、设计模式介绍设计模式是对软件设计中普遍存在或反复出现的各种问题,所提出的解决方案。这个术语是由埃里希·伽马(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。1.1 学习设计模式的目的编写软件过程中,程序员面临着来自耦合性、内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战,设计模式是为了让程序(软件)具有更好的:代码重用性:相同功能的代码,不用多次编写 可读性:即编程规范性,便于其他程序猿阅读和理解 可扩展性(可维护性):当需要增加新的功能时,非常原创 2021-04-13 22:01:37 · 193 阅读 · 0 评论