当前位置: 首页 > news >正文

网站定位授权开启权限怎么做建设工程用地批准手续在哪个网站

网站定位授权开启权限怎么做,建设工程用地批准手续在哪个网站,百度站长收录提交入口,江西省建设网站1、模式标准 模式名称#xff1a;访问者模式 模式分类#xff1a;行为型 模式意图#xff1a;将数据操作与数据结构分离#xff0c;使得在不修改数据结构的前提下#xff0c;可以添加或改变对数据的操作。 结构图#xff1a; 适用于#xff1a; 当你需要对一个复杂对…1、模式标准 模式名称访问者模式 模式分类行为型 模式意图将数据操作与数据结构分离使得在不修改数据结构的前提下可以添加或改变对数据的操作。 结构图 适用于 当你需要对一个复杂对象结构执行一些操作并且你希望实现这些操作与该对象结构的类无关时。访问者模式使得你可以在不修改现有类的情况下添加新的操作。 当你需要清洁并且有逻辑的方式来操作复杂的对象结构时。将相关的操作逻辑放在一个访问者类中使得你可以将复杂的操作逻辑与数据结构的类分离。 当你需要在不同的类上执行类似的操作而不希望污染这些类的接口时。访问者模式允许你在不影响其他类的情况下添加新的操作。 2、分析与设计   访问者模式简单描述就是一个访问者访问了你对你提了一些建议和操作。这里打个比方比如本来你只会发1234567乐符发音音乐老师访问者过来说听他的指挥你说好的(accept)之后你就听从音乐老师的指挥哼出了一个曲调。老师一走你就啥都不会了。 在游戏设计中不确定其他人是如何用这个访问者模式的但是我的第一感觉是是否能用在攻击上面比如单位A对单位B发动了一个火球攻击火球在遇到单位B时对其产生了伤害。这个火球只是一个特效火球的伤害就是伤害访问者。 来问一下GPT是如何说的 在游戏开发中访问者模式可以被用于处理各种复杂的游戏逻辑包括你所描述的攻击和属性修改的场景。让我们来看一下这种方式的一些可能优点和缺点。 优点 分离游戏逻辑访问者模式可以将攻击逻辑和单位属性的修改逻辑从实体类如单位类中分离出来使得代码更易于理解和维护。 易于添加新的操作如果你在未来需要添加新的攻击方式或者修改属性的方式你可以通过添加新的访问者类来实现而不需要修改现有的单位类。 缺点 可能会破坏封装访问者模式需要访问者类能够访问被访问元素的内部状态在这个案例中是单位的属性这可能会破坏被访问元素的封装。 可能导致代码更复杂如果游戏的逻辑不是很复杂使用访问者模式可能会使代码变得不必要的复杂。 总的来说将一次攻击作为攻击访问者然后在攻击访问者中计算对被攻击单位的属性的修改是一种可行的方式。但是是否应该使用这种方式取决于你的具体需求包括你的游戏的复杂性你对易于理解和维护的需求以及你对封装的考虑等。 会破坏封装什么意思继续问 “这句话有些不理解“可能会破坏被访问元素的封装”” “封装”是面向对象编程中的一个重要概念它指的是将对象的内部状态和实现细节隐藏起来只暴露出一组公开的接口供外部使用。封装有助于保护对象的内部状态不被外部直接修改也有助于减少代码之间的耦合使得代码更易于理解和维护。 在访问者模式中访问者类需要访问被访问元素的内部状态以便执行一些操作。这就意味着被访问元素需要提供一些公开的接口来暴露其内部状态这可能会破坏被访问元素的封装。具体来说一些本应该是私有的数据或者实现细节可能会被暴露出来这可能使得被访问元素变得更加脆弱也可能使得代码更难以理解和维护。 例如假设你有一个Unit类它有一些私有的属性如health生命值和armor护甲。在一般情况下你可能只会提供一些公开的方法来修改这些属性如decreaseHealth和increaseArmor而不会直接暴露这些属性。但是如果你使用访问者模式你可能需要提供一些公开的接口来让AttackVisitor能够直接访问和修改health和armor这就破坏了Unit的封装。 你有什么好的建议吗 对于这个问题一种可能的解决方案是使用 双重分派double dispatch。在这种模式下你可以在被访问者如单位中定义一个接受访问者的方法并在这个方法中调用访问者的相应方法。这样访问者可以在被访问者的上下文中执行操作而不需要直接访问被访问者的内部状态。下面是一个简化的示例 class Unit {constructor(health, armor) {this.health health;this.armor armor;}accept(visitor) {visitor.visitUnit(this);}decreaseHealth(amount) {this.health - amount;}increaseArmor(amount) {this.armor amount;} }class AttackVisitor {constructor(damage) {this.damage damage;}visitUnit(unit) {unit.decreaseHealth(this.damage);// 更复杂的攻击逻辑可以在这里添加} }let unit new Unit(100, 50); let attackVisitor new AttackVisitor(10); unit.accept(attackVisitor); 在上面的代码中AttackVisitor可以通过调用visitUnit方法来修改Unit的状态而不需要直接访问Unit的health和armor属性。这样Unit的封装性就得到了保护。 这种方法的一个缺点是如果你有多种类型的单位你可能需要在AttackVisitor中为每种单位类型定义一个不同的visit方法。然而这种问题可以通过使用一些设计模式如策略模式或组合模式来解决。 这种方法的一个优点是你可以轻松地添加新的访问者如DefenseVisitor而不需要修改Unit类。这是访问者模式的一个主要优点。 总得来说的是可行的方案。 意图将数据操作伤害操作与数据结构(受攻击者)分离使得在不修改数据结构(受攻击者)的前提下可以添加或改变对数据的操作伤害操作。 3、开始打造 import { IUnitItem } from ../items/IItemexport interface IAttackVisitor {// 普通单位visitNormalUnitItem(unitItem: IUnitItem): void// 英雄单位visitHeroUnitItem(unitItem: IUnitItem): void } import { IUnitItem } from ../items/IItem; import { IAttackVisitor } from ./IAttackVisitor;// 单体攻击 export class MonomerAttackVisitor implements IAttackVisitor {damage: number 0constructor(damage: number) {this.damage damage}// 普通单位visitUnitItem(unitItem: IUnitItem): void {unitItem.subHp(this.damage)}// 英雄单位受到伤害值为0.8visitHeroUnitItem(unitItem: IUnitItem): void {unitItem.subHp(this.damage * 0.8)} } import { IUnitItem } from ../items/IItem; import { IAttackVisitor } from ./IAttackVisitor;// 群体(衍射)攻击 export class GroupAttackVisitor implements IAttackVisitor {damage: number 0constructor(damage: number) {this.damage damage}// 普通单位visitUnitItem(unitItem: IUnitItem): void {unitItem.subHp(this.damage)// todo 周围单位也受到伤害}// 英雄单位受到伤害值为0.8visitHeroUnitItem(unitItem: IUnitItem): void {unitItem.subHp(this.damage * 0.8)// todo 周围单位也受到伤害} } export interface IUnitItem {hp: numbersubHp(hp: number): voidaccept(visitor: IAttackVisitor): void } export class UnitItem extends Component implements IItem, IUnitItem {accept(visitor: IAttackVisitor) {visitor.visitUnitItem(this)}} 4、开始使用  export class UnitItem extends Component implements IItem, IUnitItem {ad: number 100;accept(visitor: IAttackVisitor) {visitor.visitUnitItem(this)}attack(unitItem: UnitItem) {let damage this.adlet attackVisitor new MonomerAttackVisitor(damage)unitItem.accept(attackVisitor)}} let unitItem001 xhgame.itemFactory.createUnitItem(shibing_001) let unitItem002 xhgame.itemFactory.createUnitItem(shibing_002)unitItem001.attack(unitItem002) 有了访问者模式后伤害管理变得更简单目前只是简单版本后续还得继续完善
http://www.w-s-a.com/news/289870/

相关文章:

  • 网站建设预算计算方法什么是网络营销战略?网络营销战略有哪些基本类型
  • 无锡做网站公司多少钱网站备案方法
  • 建设网站最强做网站哪一家公司好
  • 漫画风格网站人物介绍网页模板html
  • 贵阳市住房和城乡建设局政务网站大连 网站开发
  • 漳州市住房建设局网站网站一般多长
  • 国外做网站推广小程序制作二维码签到
  • 做网站需要域名网站建设诚信服务
  • 做物品租赁网站网站建设的完整流程
  • 响应式企业网站开发所用的平台西安知名网站推广
  • 高端响应式网站建设wordpress 全屏主题
  • 国内工程机械行业网站建设现状ui是什么意思
  • 成都网站开发哪家公司好出售家教网站模板
  • 订阅号做流量 那些电影如何链接网站温州市建设监理协会网站
  • 成都网站建设成功案例单招网商丘网站建设大全
  • 受欢迎的购物网站建设网推专员是做什么的
  • 商城网站前期准备湖南郴州建设局网站
  • 企业如何在自己的网站上做宣传外贸自建站可以自己做网站吗
  • 甘肃网站建设制作商网站空间哪家公司的好
  • 思途旅游网站建设系统用vscode做网站
  • 广州站改造最新消息半年工作总结ppt模板
  • logo模板下载网站推荐哪家网站开发培训好
  • 做外贸网站效果图页面关键词优化
  • 广平网站建设成都活动轨迹
  • 小型网站网站建设需要网络公司是什么行业
  • 滑动 手机网站 代码网页制作与设计讨论
  • 自己做网站处理图片用什么软件wordpress html5支持
  • 校园网站怎么建软文文案范文
  • 中国建设官方网站如何创建自己的软件
  • 来宾住房与城乡建设网站天津西青区怎么样