设计模式
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 · 150 阅读 · 0 评论 -
状态模式
当行为取决于状态时可以使用状态模式,比如和登录相关的进入收藏,购物车,发起评论之类的按钮。可用于解决if-else和switch逻辑。状态模式更偏向于状态引起的一些行为的改变。策略模更偏向于使用不同的算法来实现一个功能。public interface UserState { /** * 购物车 */ public void shoppingCart(...原创 2019-05-16 15:00:28 · 196 阅读 · 0 评论 -
观察者模式
描述:每当一个对象改变状态,所有依赖于它的对象都会得到通知并自动更新。 (发布和订阅,将观察者和被观察者解耦)观察者:public class TestObserver implements Observer{ private String mStr; public TestObserver(String str) { mStr= str; }...原创 2019-05-10 17:37:13 · 210 阅读 · 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 · 185 阅读 · 0 评论 -
桥接模式
多维度独立变化,且可扩展。桥接模式相比策略模式,策略模式更注重算法,一种策略一套机制,而桥接模式结构更复杂,可根据场景拼凑不同维度。例如奶茶制作,可分大杯,中杯,小杯,配料可加珍珠,香草波霸... 这场场景可以使用桥接模式。例子:public abstract class Something { public abstract String addSomething();...原创 2019-05-15 14:05:15 · 387 阅读 · 0 评论 -
设计模式
单例模式Builder模式观察者模式代理模式装饰模式外观模式工厂模式抽象工厂模式适配器模式桥接模式策略模式状态模式原创 2019-05-17 14:40:17 · 157 阅读 · 0 评论 -
单例设计模式
描述:确保某个类只有一个实例供全局调用。推荐使用:1.双重检查锁定模式:Double Check Lock (DCL)模式注意:要用volatile关键字,否则还是会导致创建多个实例public class Singleton { private volatile static Singleton singleton = null; private Singlet...原创 2019-05-10 14:11:11 · 210 阅读 · 0 评论 -
策略模式
针对一个问题有多种处理办法时可以使用策略模式。当有很多if-else或者switch时可以考虑设置策略。策略模式和代理模式在应用情景上有点相似,但是代理模式有一个代理类,将对子类的选择封装在其中,对外通过代理类提供服务。而策略模式则是通过动态注入的方式设置合适的策略。策略模式更侧重于策略或是算法的封装隔离,而代理模式更侧重于通过代理类提供代理服务例子:public interface...原创 2019-05-15 11:47:24 · 188 阅读 · 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 · 182 阅读 · 0 评论 -
抽象工厂模式
抽象工厂是建立在工厂模式的基础上。一个总工厂下有多个工厂,每个工厂下又有相应的产品。public interface Person { void work();}public class Man implements Person{ @Override public void work() { System.out.println("男人:耕地...原创 2019-05-14 17:31:57 · 153 阅读 · 0 评论 -
工厂模式
工厂模式非常适合用来创建对象。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。创建公共接口:public interface Person { void work();}public class Man implements Person{ @Override public void work()...原创 2019-05-14 17:02:46 · 183 阅读 · 0 评论 -
外观模式
隐藏系统的复杂性,并向客户端提供了一个可以访问系统的接口。把需要对外暴露的方法统一放在外观接口或类里面,隐藏其他的子模块。例子:创建一个接口public interface Person { void work();}public class Man implements Person{ @Override public void work() {...原创 2019-05-14 16:11:47 · 276 阅读 · 0 评论 -
装饰器模式
向一个现有的对象添加新的功能,同时又不改变其结构。比如一个人,我们可以给他装饰帽子,衣服等,又不影响本身人的特点。例子:public interface Person { void show();}public class Man implements Person{ @Override public void show() { Syst...原创 2019-05-14 15:52:54 · 431 阅读 · 0 评论 -
代理模式使用
场景:不直接访问某个对象时,可设置一个代理对象来间接访问,为了保证代码的透明度,委托对象与代理对象需要实现相同的接口。静态代理和动态代理;代理类和被代理类都要继承或实现相同的接口或方法;代理类通过被代理类的引用来调用具体的业务逻辑。抽象主题类public abstract class Test{ public Test() { } public abstr...原创 2019-05-14 10:21:40 · 182 阅读 · 0 评论
分享