设计模式
文章平均质量分 62
一些设计模式知识
菜鸟厚非
一枚跨平台技术爱好者,追求对新技术的掌握和最佳解决方案的搜寻。
展开
-
软件设计原则 — 里氏替换原则
优点 提高代码的重用性,子类拥有父类的方法和属性。 提高代码的可扩展性,子类可形似于父类,但异于父类,保留自我的特性。 缺点 继承是侵入性的,只要继承就必须拥有父类的所有方法和属性,在一定程度上约束了子类,降低了代码的灵活性; 增加了耦合,当父类的常量、变量或者方法被修改了,需要考虑子类的修改,所以一旦父类有了变动,很可能会造成非常糟糕的结果,要重构大量的代码。 任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件单位的功能不受到原创 2021-07-10 16:46:04 · 138 阅读 · 0 评论 -
软件设计原则 — 单一职责原则
一、定义 一个类应该有且只有一个变化的原因。 There should never be more than one reason for a class to change. 为什么将不同的职责分离到单独的类中是如此的重要呢? 因为每一个职责都是一个变化的中心。当需求变化时,这个变化将通过更改职责相关的类来体现。 如果一个类拥有多于一个的职责,则这些职责就耦合到在了一起,那么就会有多于一个原因来导致这个类的变化。对于某一职责的更改可能会损害类满足其他耦合职责的能力。这样职责的耦合会导致设计的脆弱,原创 2021-07-10 11:25:20 · 1633 阅读 · 0 评论 -
软件设计原则 — 开放封闭原则
一、开闭原则的定义 Software entities like classes,modules and functions should be open for extension but closed for modifications 一个软件实体、如类、模块、函数等应该对扩展开放,对修改封闭。 这也是开放封闭原则的核心思想:对扩展开放,对修改封闭. 二、 如何实现开放封闭原则 “需求总是变化”,“世界上没有一个软件是不变的”。这里投射出的意思是:需求总是变化的,可是对于软件设计者来说,如何才能原创 2021-07-09 00:22:32 · 1146 阅读 · 2 评论 -
设计模式之 — 简单工厂模式
介绍 现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单。 在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。 定义 一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 在简单工厂模式中创建实例的方法通常为静态(stat原创 2021-07-17 16:40:20 · 1606 阅读 · 0 评论 -
设计模式之 — 工厂方法模式
介绍 在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否做到软件对象的生产和使用相分离呢?能否在满足“开闭原则”的前提下,客户随意增删或改变对软件相关对象的使用呢?这就是工厂方法模式。 我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。 代码实现 工厂方法模式之原创 2021-07-17 17:20:45 · 92 阅读 · 0 评论 -
设计模式之 — 抽象工厂模式
介绍 工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。 同种类称为同等级,也就是说,工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。 抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品族。 定义 是一种为访问类提供一个创建一组相关或相互依原创 2021-07-18 10:19:40 · 5102 阅读 · 0 评论