• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. asp.net 組合模式的PHP代碼

        時間:2024-10-07 12:35:26 ASP 我要投稿
        • 相關推薦

        asp.net 組合模式的PHP代碼

          復制代碼 代碼如下:

          using System;

          using System.Collections.Generic;

          using System.Linq;

          using System.Text;

          namespace Test

          {

          class Program

          {

          static void Main(string[] args)

          {

          var customer = new Customer

          {

          IsActive = true,

          LateFees = 100M,

          TotalRentNumber = 10

          };

          Console.WriteLine(customer.CanRent());

          Console.ReadKey();

          }

          }

          public interface ISpecification

          {

          ///

          /// 是否可以租賃

          ///

          bool IsSatisfiedBy(T entity);

          ///

          /// 與操作

          ///

          ISpecificationAnd(ISpecificationother);

          ///

          /// 否操作

          ///

          ISpecificationNot();

          }

          ///

          /// 基類

          ///

          public abstract class CompositeSpecification: ISpecification

          {

          public abstract bool IsSatisfiedBy(T candidate);

          public ISpecificationAnd(ISpecificationother)

          {

          return new AndSpecification(this, other);

          }

          public ISpecificationNot()

          {

          return new NotSpecification(this);

          }

          }

          ///

          /// 與操作

          ///

          public class AndSpecification: CompositeSpecification

          {

          private ISpecificationleftSpecification;

          private ISpecificationrightSpecification;

          public AndSpecification(ISpecificationleftSpecification, ISpecificationrightSpecification)

          {

          this.leftSpecification = leftSpecification;

          this.rightSpecification = rightSpecification;

          }

          public override bool IsSatisfiedBy(T entity)

          {

          return leftSpecification.IsSatisfiedBy(entity) && rightSpecification.IsSatisfiedBy(entity);

          }

          }

          ///

          ///否操作

          ///

          public class NotSpecification: CompositeSpecification

          {

          private ISpecificationinnerSpecification;

          public NotSpecification(ISpecificationinnerSpecification)

          {

          this.innerSpecification = innerSpecification;

          }

          public override bool IsSatisfiedBy(T entity)

          {

          return !innerSpecification.IsSatisfiedBy(entity);

          }

          }

          ///

          /// 是否達到最大的規定租賃數

          ///

          public class HasReachedMaxSpecification : CompositeSpecification

          {

          public override bool IsSatisfiedBy(Customer entity)

          {

          return entity.TotalRentNumber > 5;

          }

          }

          ///

          /// 是否激活

          ///

          public class CustomerActiveSpecification : CompositeSpecification

          {

          public override bool IsSatisfiedBy(Customer entity)

          {

          return entity.IsActive;

          }

          }

          ///

          /// 是否欠費

          ///

          public class CustomerHasLateFeesSpecification : CompositeSpecification

          {

          public override bool IsSatisfiedBy(Customer entity)

          {

          return entity.LateFees > 0;

          }

          }

          public class Customer

          {

          private ISpecificationhasReachedRentalThreshold;

          private ISpecificationcustomerIsActive;

          private ISpecificationcustomerHasLateFees;

          public Customer()

          {

          hasReachedRentalThreshold = new HasReachedMaxSpecification();

          customerIsActive = new CustomerActiveSpecification();

          customerHasLateFees = new CustomerHasLateFeesSpecification();

          }

          ///

          /// 用戶租賃DVD數量

          ///

          public int TotalRentNumber

          {

          get;

          set;

          }

          ///

          /// 賬戶是否激活

          ///

          public bool IsActive

          {

          get;

          set;

          }

          ///

          /// 用戶之前是否還欠費

          ///

          public decimal LateFees

          {

          get;

          set;

          }

          public bool CanRent()

          {

          ISpecificationcanRent = customerIsActive.And(hasReachedRentalThreshold.Not()).And(customerHasLateFees.Not());

          return canRent.IsSatisfiedBy(this);

          }

          }

          }

        【asp.net 組合模式的PHP代碼】相關文章:

        php數組函數序列之array-combine() - 數組合并函數的代碼08-25

        php如何過濾危險html代碼09-21

        將php實現過濾UBB代碼09-11

        php對圖像的各種處理函數代碼總結07-03

        如何在cmd下面寫php代碼01-22

        ASP.NET連SQL7接口的源代碼06-06

        PHP url 加密解密函數代碼方法10-25

        企業薪酬設計基本模式及組合模式02-26

        關于PHP var-dump遍歷對象屬性的函數與應用代碼06-21

        關于ASP.NET使用JavaScript顯示信息提示窗口實現原理及代碼05-09

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 最新国产精品视频久久 | 中日高清字幕一区二区版在线观看 | 伊人五月天在线视频网 | 亚洲熟女中文字幕 | 午夜久久福利小视频 | 尹人久久久香蕉精品 |