HeadFirst 设计模式(java)
芜
why_doubt
这个作者很懒,什么都没留下…
展开
-
HeadFirst 状态模式
这里我觉得应该是,用一个interface/父类把子类的类名框定一下(比如都是State接口实现啥的),然后父类里面维护一个List这种数据结构之类的,这样方便之后添加,不用再在State里面改代码。然后,这个功能主体持有所有的状态类,并在具体执行的时候,将主体作为参数传入状态类中,进行信息读取操作执行和状态转换。具体做法是,将每个状态都抽离出来设计为一个单独的类,类中包含这个状态下所有的可能进行的操作及对应结果。感觉List不太好,可能map好点,不然也不知道当前有哪些状态结构,不够直观。原创 2024-07-03 09:46:46 · 220 阅读 · 0 评论 -
headfirst 命令模式(这个感觉有点难)
这个模式的重点是,将命令包装起来,几层之间互相配合使用一下。以达到调用方和指令方解耦的效果。之后如果指令的具体操作细节出现了变化或指令的类别发生了调整,不需要修改调用方的代码。在此,将模式中的几个区块分为客户,调用者,接收者,命令对象。原创 2024-06-24 16:06:52 · 233 阅读 · 0 评论 -
headfirst 工厂模式/抽象工厂
【代码】headfirst 工厂模式/抽象工厂。原创 2024-06-24 11:41:22 · 287 阅读 · 0 评论 -
headfirst 单例模式
这里的关键点是使用volatile关键字标记instance变量,这确保了当一个线程修改了instance的值后,其他线程可以看到这个更新,同时也禁止了编译器和处理器的指令重排序,避免了可能的内存可见性问题。在外部紧贴着进行异步查询是因为够快,这样只有在第一次尚未初始化的时候,会进入到未创建的同步代码块中来,其他时候都是直接拿到单例对象了。确保创建的时候同步环境下整个系统内都没有成型的实例。牵涉到的一个是volatile的使用,然后是在内外都进行了check的操作。原创 2024-06-24 14:02:24 · 163 阅读 · 0 评论