![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 73
慎独-杨
这个作者很懒,什么都没留下…
展开
-
六大设计原则
六大设计原则单一职责原则里式替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则 一、单一职责原则(SRP)单一职责原则:英文名为(Single Responsibility Principle),简称 SRP。 SRP 的定义是:应该有且仅有一个原因引起类的变更。 SRP 的好处: ①. 类的复杂性降低,实现什么职责都有清晰明确的定义。 ②. 可读性提高,复杂性降低。 ③.原创 2017-10-08 21:51:02 · 389 阅读 · 0 评论 -
工厂方法模式
工厂方法模式工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法实现了对扩展开放,对修改关闭。工厂方法模式结构图: 工厂方法模式结构图代码解析://产品类public interface Product{ public void operate();}//产品A类public class ProductA implemen原创 2017-11-15 23:12:43 · 201 阅读 · 0 评论 -
建造者模式
建造者模式 如果你需要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,可以选择使用建造者模式。比如,你要画一个人,你需要先画头、身体、两手、两脚。这些是固定的流程,而具体的胖人、瘦人,这些就是不同的表示意图。这是就可以使用建造者模式固定建造流程,具体实现交由子类去实现。如果我们使用了建造模式,用户就只需指定需要建造的类型就可以得到它们,而原创 2017-11-20 23:59:48 · 163 阅读 · 0 评论 -
代理模式
代理模式代理模式:为其他对象提供一种代理以控制对这个对象的访问。代理模式结构图如下: 代理模式结构图代码解析://代理类和真实类的公共接口(接口或抽象类)public abstract class Subject{ public abstract void request();}//真实类,RealSubject类,定义 Proxy类所代表的真实实体public class R原创 2017-11-15 00:34:15 · 165 阅读 · 0 评论 -
外观模式
外观模式外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式结构图: 外观模式结构图代码解析://四个子系统的类class SubSystemOne{ public void methodOne(){ print("子系统方法一"); }}class SubSystemTwo{ publ原创 2017-11-19 09:42:24 · 190 阅读 · 0 评论 -
模板方法模式
模板方法模式模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟的到子类中。模板方法可以使得子类不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法结构图如下: 模板方法结构图代码解析:public abstract class AbstractClass{ //需要由特定子类实现的方法 public abstract void primitiveOperation1()原创 2017-11-18 23:52:13 · 176 阅读 · 0 评论 -
装饰模式
装饰模式装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 即通过不同的组合方式,可以组合出各种不同的行为。装饰模式结构图如下: 装饰模式的基本代码实现://Component类abstract class Component{ //对象操作模板方法 public abstract void Operation();}//Concrete原创 2017-11-14 11:09:12 · 190 阅读 · 0 评论 -
策略模式
策略模式定义一个需求:根据商品的单价和数量计算消费总额,采用面向对象的方式,要求程序可扩展、可复用、可维护、灵活性强。需求分析:商场可能在有些时候会进行打折、会进行满减活动,因此在后期可能需要扩展功能。不管计算总价还是打折做活动,都是算法的变动,这是可以考虑使用策略模式。需求对应的程序我会在后面给出。 先来简单了解一下策略模式:策略模式定义了算法家族,分别封装起来,让他们相互替换,此模式使原创 2017-11-13 23:50:52 · 184 阅读 · 0 评论 -
原型模式
原型模式原型模式结构图: 原型模式结构图代码解析:/** * Created by 杨Sir on 2017/11/17. * 原型模式接口,,如果单纯是行为,使用接口最好 * 如果涉及到共性的属性,则使用抽象类最好。 需要自己权衡。 */public interface Prototype extends Cloneable { public Prototype clone()原创 2017-11-17 22:24:07 · 174 阅读 · 0 评论 -
简单工厂模式
简单工厂模式通过一个小需求来看一下简单工厂模式: 1. 项目需求:假设我们要一个加减乘除运算的功能,要求面向对象的方式,达到可维护、可复用、可扩展、灵活性好。 2. 需求分析: ①.为了达到高内聚低耦合的效果以及需求,可以考虑面向接口编程的思想,将共性抽取出去,因为是抽取类的共性,因此使用抽象类比较好。 ②.首先创建运算类,提供运算方法的模板,为了不让模板实例化,因原创 2017-11-12 23:47:10 · 179 阅读 · 0 评论 -
文章标题
状态模式状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的问题是:当控制一个对象状态转换的条件表达式过于复杂时的情况。此时把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。状态模式结构图为: 状态模式结构图代码解析://抽象状态类abstract class State{ public abstract voi原创 2017-11-22 00:01:17 · 174 阅读 · 0 评论