![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java设计模式
zhang英杰
这个作者很懒,什么都没留下…
展开
-
Android的开发之&java23中设计模式------>工厂模式
使用情景: 情况一:如果一个对象拥有很多子类,那么创建该对象的子类使用工厂模式是最合适的,不但可以面向接口的编程,为维护以及开发带来方便。 情况二:再不确定会有多少个处理操作时应该考虑使用简单工厂模式,如针对同样的接收到的数据,处理的逻辑可能会不同,可能以后还会增加新的操作。不可能创建对象时,在该对象的构造方法里创建成员变量然后再赋值给该成员变量。而且使用工厂模式也提高了代码的重用性。原创 2017-11-02 11:53:45 · 1267 阅读 · 0 评论 -
Android的开发之&java23中设计模式------访问者模式
/** * Created by Administrator on 2017-10-12. * 商品项接口:两个方法等实现 */ public interface GoodsItem { public double accept(ShoppingCartVisitor visitor); public ShoppingCartVisitor getSelfVisitor(原创 2018-05-20 17:13:24 · 1184 阅读 · 0 评论 -
Android的开发之&java23中设计模式------中介者模式
/** * Created by Administrator on 2017-10-12. * 抽象中介者类 */ public abstract class Mediator { //用于添加存储“房东” protected List landlordList=new ArrayList; //用于添加存储“租房人” protected List rent原创 2018-05-20 17:08:58 · 1263 阅读 · 0 评论 -
Android的开发之&java23中设计模式------解释器模式
public class Context { private String input; private String output; public String getInput() { return input; } public void setInput(String input) { this.input = i原创 2018-05-20 17:06:49 · 1208 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>抽象工厂模式
/** * 抽象工厂 * 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。 * 抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。 * 因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实原创 2017-11-22 17:51:49 · 1202 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>装饰模式
/** *装饰模式的特点 (1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。 (2) 装饰对象包含一个真实对象的引用(reference) (3) 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。 (4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功原创 2017-11-22 17:52:43 · 1214 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>代理模式
代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 // 举例说明,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。 // 在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。 / 动态代理好处 // // 使用Java动态代理机制的好处: // // 1原创 2017-11-23 10:12:30 · 1251 阅读 · 0 评论 -
Android的开发之&java23中设计模式------享元模式
享元模式它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。public class FlyweightMethodActivity extends AppCompatActivity { @Override protected void onCreate(Bund...原创 2018-05-20 16:38:22 · 1181 阅读 · 0 评论 -
Android的开发之&java23中设计模式------桥接模式
桥接模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。public class BridgeMethodActivity extends AppCompatActivity { @Override protected void onCreate...原创 2018-05-20 16:48:20 · 1165 阅读 · 0 评论 -
Android的开发之&23中设计模式------责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。 请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求, 这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 在以下条件下可考虑使用责任链模式(Chain of Responsibility):1 有多个的对象可以处理...原创 2018-05-20 17:02:58 · 1258 阅读 · 0 评论 -
Android的开发之&java23中设计模式------状态模式
public class Room { /** * 房间的三个状态 */ State freeTimeState; //空闲状态 State checkInState; //入住状态 State bookedState; //预定状态 State state; public Room(){原创 2018-05-20 17:14:49 · 1312 阅读 · 0 评论 -
Android的开发之&java23中设计模式------命令模式
public class Receiver { public void action(){ System.out.print("command"); } }/** * Created by Administrator on 2017-10-11. * 命令接口 */ public interface Command { public void exe原创 2018-05-21 16:41:54 · 1192 阅读 · 0 评论 -
Android的开发之&java23中设计模式《总结》
设计模式概念 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 设计模式的起源 设计模式的起源归因于Christopher Alexander所做的工作,作为架构师,Alexander注意到在给定的环境中存在常见问题及其相关的解决方案 Alexander将此问题、解决方案、环境三元组称为“设计模式”,架构师在构建设计过程中原创 2017-10-24 14:32:40 · 1359 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>单例模式
单例对象(SingletonMethod)是一种常用的设计模式。单例对象能保证在一个JVM中,该对象只有一个实例存在。 * 这样的模式有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。 (比如一个军原创 2017-11-02 13:01:41 · 1247 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>原型模式
原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 Prototype原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节, 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 在java中 体现为 clone() 对象原创 2017-11-14 11:02:14 · 1228 阅读 · 0 评论 -
Android的开发之&java23中设计模式------建造者模式
建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 实用范围 1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。[1] 2 当构造过程必须允许被构造的对象有不同表示时。 public class Student { private String name; private int gender;原创 2017-11-02 13:27:20 · 1175 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>外观模式
/** * 适用场景 在以下情况下可以考虑使用外观模式: (1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。 (2) 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。 (3) 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。 */public class FacadeMe原创 2017-12-01 16:50:13 · 1263 阅读 · 0 评论 -
Android的开发之&java23中设计模式------>组合模式
public class CompositeMethodActivity extends AppCompatActivity { /** *组合模式 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。原创 2017-12-01 16:51:41 · 1280 阅读 · 0 评论 -
Android的开发之&java23中设计模式------策略模式
策略模式 是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 具体策略角色:包装了相关的算法和行为。 环境角色:持有一个策略类的引用,最终给客户端调用。应用场景: 1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。原创 2018-05-21 17:06:55 · 1214 阅读 · 0 评论 -
Android的开发之&java23中设计模式------模板方法模式
public abstract class AbstractPerson { //抽象类定义整体流程骨架 public void prepareGotoSchool(){ dressUp(); eatBreakfast(); takeThings(); } //以下是不同子类根据自身特性完成的具体步骤 pro原创 2018-05-21 16:46:55 · 1179 阅读 · 0 评论 -
Android的开发之&java23中设计模式------观察者模式
/** * 观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种 * 观察者 (Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。 被观察 被观察对象发生了某种变化(如图中的SomeChange原创 2018-05-20 16:53:45 · 1229 阅读 · 0 评论 -
Android的开发之&java23中设计模式------迭代子模式
public abstract class Aggregate { /** * 工厂方法,创建相应迭代子对象的接口 * @return */ public abstract Iterator createIterator(); }public class ConcreateAggregate extends Aggregate { privat原创 2018-05-21 16:45:12 · 1229 阅读 · 0 评论 -
Android的开发之&java23中设计模式------备忘录模式
备忘录模式,即保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。模式结构 发起者角色(Originator):负责创建一个备忘录用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。 备忘录角色(Memento):负责存储Originator对象的内部状态,并可以防止Originator以外的其他对象访问备忘录。 管理者角色(CareTake):负...原创 2018-05-20 17:18:48 · 1191 阅读 · 0 评论