1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 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久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>