![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
DarkFallYou
这个作者很懒,什么都没留下…
展开
-
Builder模式
Builder模式自动生成插件,Android Studio中Plugins下搜索InnerBuilder。 常用的Builder模式示例如下: public class People { private final String firstName;//必选 private final String secondName;//必选 private final in...原创 2019-04-02 10:31:34 · 91 阅读 · 0 评论 -
状态模式
当行为取决于状态时可以使用状态模式,比如和登录相关的进入收藏,购物车,发起评论之类的按钮。可用于解决if-else和switch逻辑。 状态模式更偏向于状态引起的一些行为的改变。策略模更偏向于使用不同的算法来实现一个功能。 public interface UserState { /** * 购物车 */ public void shoppingCart(...原创 2019-05-16 15:00:28 · 137 阅读 · 0 评论 -
观察者模式
描述:每当一个对象改变状态,所有依赖于它的对象都会得到通知并自动更新。 (发布和订阅,将观察者和被观察者解耦) 观察者: public class TestObserver implements Observer{ private String mStr; public TestObserver(String str) { mStr= str; } ...原创 2019-05-10 17:37:13 · 153 阅读 · 0 评论 -
Builder模式
下面是个多参数构造的例子,也可设置默认值。 Builder模式可以对不同顺序和数量的多参数结构进行较好的处理。 Builder简单的示例代码: public class Student{ private String name; private int age; private boolean sex; public String getName() { ...原创 2019-05-10 17:10:03 · 126 阅读 · 0 评论 -
桥接模式
多维度独立变化,且可扩展。 桥接模式相比策略模式,策略模式更注重算法,一种策略一套机制,而桥接模式结构更复杂,可根据场景拼凑不同维度。 例如奶茶制作,可分大杯,中杯,小杯,配料可加珍珠,香草波霸... 这场场景可以使用桥接模式。 例子: public abstract class Something { public abstract String addSomething();...原创 2019-05-15 14:05:15 · 303 阅读 · 0 评论 -
设计模式
单例模式 Builder模式 观察者模式 代理模式 装饰模式 外观模式 工厂模式 抽象工厂模式 适配器模式 桥接模式 策略模式 状态模式原创 2019-05-17 14:40:17 · 104 阅读 · 0 评论 -
单例设计模式
描述:确保某个类只有一个实例供全局调用。 推荐使用: 1.双重检查锁定模式:Double Check Lock (DCL)模式 注意:要用volatile关键字,否则还是会导致创建多个实例 public class Singleton { private volatile static Singleton singleton = null; private Singlet...原创 2019-05-10 14:11:11 · 133 阅读 · 0 评论 -
策略模式
针对一个问题有多种处理办法时可以使用策略模式。当有很多if-else或者switch时可以考虑设置策略。 策略模式和代理模式在应用情景上有点相似,但是代理模式有一个代理类,将对子类的选择封装在其中,对外通过代理类提供服务。而策略模式则是通过动态注入的方式设置合适的策略。策略模式更侧重于策略或是算法的封装隔离,而代理模式更侧重于通过代理类提供代理服务 例子: public interface...原创 2019-05-15 11:47:24 · 122 阅读 · 0 评论 -
适配器模式
将类的接口转为为目标接口。相当于现实中的转接口。 下面是一个将TypeC接口转化为Usb接口的例子。 public interface Usb { void isUsb(); } public class UsbImpl implements Usb{ @Override public void isUsb() { System.out.prin...原创 2019-05-15 11:29:16 · 119 阅读 · 0 评论 -
抽象工厂模式
抽象工厂是建立在工厂模式的基础上。一个总工厂下有多个工厂,每个工厂下又有相应的产品。 public interface Person { void work(); } public class Man implements Person{ @Override public void work() { System.out.println("男人:耕地...原创 2019-05-14 17:31:57 · 92 阅读 · 0 评论 -
工厂模式
工厂模式非常适合用来创建对象。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 创建公共接口: public interface Person { void work(); } public class Man implements Person{ @Override public void work()...原创 2019-05-14 17:02:46 · 118 阅读 · 0 评论 -
外观模式
隐藏系统的复杂性,并向客户端提供了一个可以访问系统的接口。 把需要对外暴露的方法统一放在外观接口或类里面,隐藏其他的子模块。 例子: 创建一个接口 public interface Person { void work(); } public class Man implements Person{ @Override public void work() {...原创 2019-05-14 16:11:47 · 216 阅读 · 0 评论 -
装饰器模式
向一个现有的对象添加新的功能,同时又不改变其结构。比如一个人,我们可以给他装饰帽子,衣服等,又不影响本身人的特点。 例子: public interface Person { void show(); } public class Man implements Person{ @Override public void show() { Syst...原创 2019-05-14 15:52:54 · 350 阅读 · 0 评论 -
代理模式使用
场景:不直接访问某个对象时,可设置一个代理对象来间接访问,为了保证代码的透明度,委托对象与代理对象需要实现相同的接口。 静态代理和动态代理;代理类和被代理类都要继承或实现相同的接口或方法;代理类通过被代理类的引用来调用具体的业务逻辑。 抽象主题类 public abstract class Test{ public Test() { } public abstr...原创 2019-05-14 10:21:40 · 122 阅读 · 0 评论