![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计思想
文章平均质量分 64
独行客Boss
每天进步一点。
不积跬步无以至千里,不积小流无以成江海。
展开
-
设计模式原来这么简单-迭代器模式
迭代器模式1.什么时迭代器模式在不暴露集合对象内部实现的前提下顺序的对该集合的元素进行访问2.实例存在一个公司,公司里有员工,现在需要对公司内的员工进行遍历3.程序实例public class Company { private Employee[] employeeList; public Company(Employee[] employeeList){ this.employeeList = employeeList; } public原创 2021-01-04 11:34:43 · 106 阅读 · 0 评论 -
设计模式原来这么简单-观察者模式
观察者模式1.什么是观察者模式WIKI: 一个类(称为主体)持有一组对象的实例(称为观察者),当一些状态变化时主题通常会通过调用观察者的一个方法来通知观察者。2.实例比如说天亮了,大人们出工,小孩去上学3.程序示例观察者的规范public interface IDayObserver { void sunRiseUpdate(); void sunSetUpdate();}public class Kid implements IDayObserver{原创 2020-12-31 10:00:08 · 85 阅读 · 0 评论 -
设计模式原来这么简单-门面模式(Facade)
### 门面模式(Facade)1.什么是门面模式为一个子系统中的一系列接口提供一个统一的接口。外观定义了一个更高级别的接口以便子系统更容易使用。2.实例例如一个项目需要的人员有产品经理、研发经理、前端、后端、测试等共同协作来完成,而从甲方的角度看来只需要拿钱启动项目最后验收项目即可3.程序示例public interface IProjectWorker { void startDailyWork(); void pauseToRest(); void endD原创 2020-12-30 17:10:40 · 197 阅读 · 2 评论 -
设计模式原来这么简单-状态模式
状态模式(state)1.什么是状态模式WIKI: 状态模式是一种允许对象在内部状态改变时改变它的行为的行为型设计模式。2.示例假如当前有一个任务,任务的状态有待审核、审核通过、审核失败(创建任务默认时待审核状态)3.程序实例public interface IState { /** * 状态的行为 */ void observe(); /** * 切换状态需要做些什么 */ void onEnterState(原创 2020-12-25 11:01:45 · 87 阅读 · 0 评论 -
设计模式原来这么简单-装饰器模式
装饰器模式1.什么是装饰器模式WIKI: 允许将行为静态或动态地添加到单个对象中,而不会影响同一类中其他对象的行为。2.实例以前用的QQ秀,需要为角色穿不同的衣服(头饰、脸饰、上衣、裤子。。。),不同的衣服展示不同的形象,而且还可以根据形象的炫酷值和好友PK。3.程序示例/** * QQ秀角色 */public interface QQCharacter { /** * 展示 */ void show(); /** * 获取炫原创 2020-12-21 11:47:42 · 77 阅读 · 0 评论 -
设计模式原来这么简单-命令模式
命令模式1.什么是命令模式WIKI: 它把在稍后执行的一个动作或触发的一个事件所需要的所有信息封装到一个对象中。2.实例例如假如有一个万能遥控可以对任何东西发出任何命令3.程序示例public interface Command { /** * 执行命令 * @param target 电器类目标 | 限制了只能对特定类发出命令 */ void doCommand(Target target); void redoCommand(原创 2020-12-18 18:12:35 · 67 阅读 · 2 评论 -
设计模式原来这么简单-Callback模式(非四人帮模式)
Callback模式1.什么是Callback(回调)模式将特定代码作为参数传递给其他代码(一般为方法),由其他代码决定在特定的时间执行2.例子比如常见的web应用里,你发送一个请求后必须等待响应数据返回后才能对数据进行操作3.程序示例等待作业做完然后检查作业@FunctionalInterfacepublic interface DoThingLater { void doThing();}public interface Task { defaul原创 2020-12-18 15:06:04 · 651 阅读 · 1 评论 -
设计模式原来这么简单-责任链模式
责任链模式1.什么是责任链模式WIKI:在面向对象设计中,责任链模式是一种由源命令对象和一系列处理对象组成的设计模式。每个处理对象包含了其定义的可处理的命令对象类型的逻辑。剩下的会传递给链条中的下一个处理对象。2.案例假如要处理一个请求并且要根据请求的级别来决定如何处理。3.具体实现@Datapublic class RequestEntity { public enum RequestType{ /** * 一级请求 *原创 2020-12-18 09:05:18 · 55 阅读 · 0 评论 -
设计模式原来这么简单-享元模式
享元模式参考https://github.com/iluwatar/java-design-patterns1.什么是享元模式WIKI:相同的对象之间通过共享尽可能多的数据来减少内存使用,当大量对象使用简单且可重用的对象(simple repeated representation)而使用了大量的内存时,该模式时解决该问题的最佳实践。2.实例在游戏的商店里会出售不同的药水,但是同一种药水药效是一样的,所以没必要为每一瓶药水都创建一个对象public interface Potion {原创 2020-12-15 09:39:29 · 89 阅读 · 2 评论 -
设计模式原来这么简单-备忘录模式(Memento)
备忘录模式(Memento)1.什么是备忘录模式Memento模式是用来提供一种恢复先前状态能力的一种软件设计模式。2.例如恒星会随着时间的流逝而缓慢衰变,从主序星=》红巨星=》白矮星=》超新星=》死亡,当恒星处于某个阶段想退回到前某一个阶段时,我们就可以用到该模式3.具体实现/** * 恒星的演变阶段 */public enum StarStatus { SUN("sun"), RED_GIANT("red giant"), WHITE_DWARF("whi原创 2020-12-11 16:42:03 · 80 阅读 · 0 评论 -
设计模式原来这么简单-桥接模式
桥接模式该模式是当两种行为需要排列组合使用时的最佳实践,例如游戏里不同的武器可以有不同的附魔效果、不同的男人和不同的女人会产生不同的结果、生活中的不同的茶壶泡不同的茶叶。但要说明的是,两个行为并不会被另一行为所影响,下面的示例有一定的瑕疵,因为不同的茶壶泡一种茶可能会有不同的味道(但是我喝不出来有什么不同)。下面简单将泡茶分为三个阶段:阶段茶壶茶叶1温壶准备茶叶2倒入水投入茶叶3茶成飘出茶香1.使用桥接/** * 茶壶 */public原创 2020-12-11 09:47:03 · 77 阅读 · 0 评论 -
设计模式原来这么简单-适配器模式
适配器模式1.不适用适配器/** * 航行 */public class HangXing { public void sail(){ System.out.println("扬帆起航!"); }}/** * 划桨 */public class HuaJiang { public void row(){ System.out.println("用力划桨,驱动船只!"); }}/** * 只会说启航并不划桨的老原创 2020-12-10 10:47:52 · 93 阅读 · 0 评论 -
设计模式原来这么简单-软件设计七大原则
软件设计七大原则1.单一职责要划分清楚每个类的职责,让每个类各尽其责2.接口隔离实现接口时要实现最小的接口,如下public interface BaseList<T>{ void add(T t);}public interface MoreMethodList<T> extends BaseList<T>{ void remove(T t); void get(int index);}假如有一个类原创 2020-12-10 09:59:25 · 74 阅读 · 0 评论 -
设计模式原来这么简单-策略模式
策略模式假如有一个商场经常搞些商品的促销活动,而且每次促销的方式都有所不同,或七折、八折、买一送一等等/** * 商品类 */@Datapublic class Goods { private String name; private String clazz; private Double price; // ...}1.不使用策略模式/** * 第一种 采用简单工厂实现打折类 * 初步优化了代码的可读性和一定的扩展性,但增加打折类型原创 2020-12-10 09:51:40 · 64 阅读 · 0 评论