设计模式
小狗铂西
不断学习,积极向上
展开
-
铂西学习日记---装饰者模式
IO体系的精髓---装饰者模式: 解决类爆炸问题,比单独生成子类更为灵活意图:动态的给一个对象添加一些职责,就像游戏装备一样,每装备一件装备就能体现不同的属性和功能。适用环境:1.在不影响其他对象的情况下,以动态透明的方式给单个对象添加职责。2.处理那些可以撤销的职责。3.当不能采用生成子类的方法扩充时:一种情况是:可能有大量独立的拓展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况是:可能是因为类定义被隐藏,或类定义不能用于生成子类。举例:卖豆浆主料:豆...原创 2022-02-09 09:38:04 · 309 阅读 · 0 评论 -
铂西学习日记---适配器模式
适配器模式就是将一个类的接口转换为需求的另外一个接口,这样使的原本由于接口不兼容而不能一起工作的那些类可以一起工作。以电源插口为例,适配前:public class Adapter { public static void main(String[] args) { work(new PowerAImpl()); } public static void work(PowerA powerA){ System.out.println("正在原创 2022-01-24 14:35:17 · 177 阅读 · 0 评论 -
铂西学习日记---静态代理模式
静态代理模式:为其他对象提供一种代理以达控制这个对象的目的。代理说白了就是“真实角色"的代表,在访问对象时引入一定的间接性,因为间接性可以在不改变原对象的情况下横向附加很多其他功能。代码实现:public class Proxy { public static void main(String[] args) { ProxyPeople proxy = new ProxyPeople(new Host()); proxy.rent(); }}/原创 2022-01-24 13:48:12 · 113 阅读 · 0 评论 -
铂西学习日记---简单工厂模式
工厂模式主要是解决使用者和被使用者之间相互依赖的问题。非工厂模式:public class Factory { public static void main(String[] args) { //类Factory 与 类Phone之间产生了关系---即使用者和被使用者之间产生了耦合,相互依赖,当被使用者改变时,会影响使用者 Product phone = new Phone(); phone.work(); }}//产品in原创 2022-01-24 13:21:32 · 189 阅读 · 0 评论 -
铂西学习日记---策略者模式
举个简单的例子:你给医生描述症状(参数),医生听后会做出一个行为就是给你拿药方(接口),具体拿的什么药方是根据你的情况而定的(多种策略---接口实现类)。整个过程其实就是将行为抽象出一个接口,通过对接口的多种实现,即独立封装实现类,运行时可以按照需求相互替换,这样可维护性强也不影响其他实现类。实际上是遵循OO设计原则:①面向接口(抽象)编程。②独立封装变化。③多组合(比如:set注入),少继承。实现有三步:1.抽象出接口。2.实现接口。3.将实现类与业务类组合产生关系。下面是代码实现:pu原创 2022-01-24 12:49:27 · 137 阅读 · 0 评论 -
铂西学习日记---单例模式
所谓单例模式就是保证工具类只有一个实例化对象,以节省工具类在频繁使用时不断的创建对象消耗内存的场景。单例模式有两种,分别是饿汉式和懒汉式。实现单例模式只需三步:第一:创建一个私有的构造函数,意在只能通过静态方法获取实例对象,不让工具类通过在外new而获取实例对象。第二:声明一个本类对象,用于静态方法获取。第三:给外部提供一个获取实例对象的静态方法。饿汉式是在类被加载后就创建对象直到程序结束后释放,下面是饿汉式的代码://饿汉式class Singleton1{ priva原创 2022-01-24 09:16:23 · 126 阅读 · 0 评论