设计模式
m&u
知其然,知其所以然
展开
-
HeadFirst_05,观察者模式
定义 观察者模式定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它所依赖者都会收到通知并自动更新原创 2020-09-20 23:11:57 · 62 阅读 · 0 评论 -
HeadFirst_04,单件模式
定义 单件模式是确保一个类只能有一个实体类对象,并提供一个全局的访问点,也称之为单例模式;实现点在于提供一个私有的构造器,通过方法获取 代码演示 public class Singleton { private static Singleton singleton; private Singleton (){} public static Singleton getInstance(){ if(singleton==null){原创 2020-09-06 19:08:11 · 131 阅读 · 0 评论 -
HeadFirst_03,装饰者模式
定义 动态的将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。 注:设计原则,类应该对扩展开放,对修改关闭。这样做的目的是由于,这样类易于扩展,在不修改原有代码的情况下,可以搭配新的行为,这样的设计具有弹性可以应对改变,便于扩展 装饰者模型类图 代码实现 被装饰类 /** * 装饰者模式 * * 饮料抽象类,所有的beverage都要继承超类 * @author utopia * @date 20200823 */ public abstract class Bev原创 2020-08-23 21:14:45 · 115 阅读 · 0 评论 -
HeadFirst_02,工厂模式
对象的创建 在java中对象是由new关键字创建,从技术上来说,用new创建对象没什么大问题,但是这种new出来的对象缺乏灵活性;**工厂模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到之类。**这可能就是我一直以来无法理解控制反转意义的原因; 具体代码-创建pizza 抽象类 public abstract class Pizza { public void prepare(){}; public void bake(){}; publ原创 2020-08-09 22:56:57 · 70 阅读 · 0 评论 -
HeadFirst_01,策略模式
HeadFirst示意图 策略者模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 书籍内容介绍: 相关源码地址:https://github.com/wenutopia/HeadFirst.git 网上相关内容介绍 策略模式中主要有3个角色 抽象策略接口:抽象策略接口,接口中定义了抽象的策略算法 具体的策略实现类:具体的策略实现。不同的策略实现类都实现了抽象策略接口,并重写了其抽象策略方法。因为都实现了相同的策略接口,因而算法可以相互替换,并且可以动态的改原创 2020-07-26 23:40:42 · 120 阅读 · 0 评论